18

IE8でサイトをテストしていて、恐ろしいUnexpected call to method or property access.エラーが発生しました。

たくさんのデバッグ(IE8のdevtoolsは吸う)の後、私は問題のある行を見つけました。

$('<script>').html(JSData).appendTo('head')

問題は$('<script>').html(JSData)です。それだけをコンソールで実行しようとしましたが、それでもエラーが発生しました。

IE8が.html新しく作成されたスクリプトタグにを設定できないのはなぜですか?

PSこれも失敗します:

$(document.createElement('script')).html(JSData)

更新:jQueryなしでスクリプトタグを作成しようとしました:

var scriptTag = document.createElement('script');
scriptTag.type = 'text/javascript';
scriptTag.innerHTML = JSData;

ライン上scriptTag.innerHTML = JSData;で、IE8はを与えUnknown runtime errorます。IE8に感謝します。

4

1 に答える 1

16

javascript onlyメソッドは、スクリプト要素をドキュメントに追加する必要があります。

IE <9は、スクリプトタグのinnerHTMLまたはchildNodesを認識しませんが、すべてのブラウザーはtextプロパティをサポートします。

var scriptTag = document.createElement('script');
scriptTag.text= JSData;
document.body.appendChild(scriptTag);
于 2012-08-30T16:46:52.603 に答える