5

あまりにも複雑な理由から、ページに挿入したい動的に作成された Javascript を返す ajax 呼び出しがあります。次のコードは Chrome では機能しますが、IE では機能しません。

 var node = document.getElementsByTagName("head")[0] || document.body;
  if (node)
  {
    var script = document.createElement("script");
    script.type = "text/javascript";
    //script.innerHTML = json.javascript;
    var textnode = document.createTextNode(json.javascript);
    script.appendChild(textnode);
    node.appendChild(script);
  }

IE で、「SCRIPT65535: Unexpected call to method or property access.」というメッセージが表示されます。コメントアウトされたコードからわかるように、textnode を試す前に、script.innerHTML で挿入してみました。それはChromeでも機能しましたが、IEでは「SCRIPT600:不明なランタイムエラー」が発生しました。

javascript を IE の DOM に貼り付ける方法はありますか?

4

1 に答える 1

6

そしてもちろん、これを投稿するとすぐにhttp://www.phpied.com/dynamic-script-and-style-elements-in-ie/が見つかります。

  var node = document.getElementsByTagName("head")[0] || document.body;
  if (node)
  {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.text = json.javascript;
    node.appendChild(script);
  }
于 2013-01-02T01:39:00.007 に答える