ajaxで取得したjavascriptを適用させる方法

ajaxで取得したjavascriptを適用させる方法ASのおもちゃ箱開発ブログajaxでデータと一緒にjavasciptを取得して、実行したかった。
サーバー側でfunctionを動的に生成して、その関数をjavascriptで実行したかったんです。

最初は、htmlでscriptタグを出力しておいて、

$('script_area').html(script);

みたいにして出力してみたものの当然実行されず。
evalしても駄目。

google先生で探し回ったところ、appendChildで出力されれば適用されることがわかった。

以下はサンプルコード。

            function add_script(script) {
              var s = document.createElement("script");
              s.type = "text/javascript";
              s.innerHTML = script;
           
              var ele = document.getElementById("display_area");
              ele.appendChild(s);
            }
           
            function display_script() {
                var parm = {
                    url : $('#url').val(),
                    mode : $('input[name=mode]:checked').val()
                };
                var url = "/test";
                $.ajax({
                    url: url,
                    data: parm,
                    dataType: 'json',
                    success : function(json) {
                            add_script(json.scripts);
                    },
                    error : function (XMLHttpRequest, textStatus, errorThrown) {
                        console.log(XMLHttpRequest); // XMLHttpRequestオブジェクト
                        console.log(textStatus); // status は、リクエスト結果を表す文字列
                        console.log(errorThrown); // errorThrown は、例外オブジェクト
                    }
                });
            }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>