在IE8中创建脚本标记

Roc*_*mat 17 javascript jquery internet-explorer-8

我正在测试我们的网站,在IE8中,并得到了可怕的Unexpected call to method or property access.错误.

经过大量的调试(IE8的devtools糟透了),我发现了违规行.

$('<script>').html(JSData).appendTo('head')
Run Code Online (Sandbox Code Playgroud)

问题是$('<script>').html(JSData).我试着在控制台中运行它,但我仍然遇到错误.

为什么IE8不能.html在新创建的脚本标签上设置?

PS这也失败了:

$(document.createElement('script')).html(JSData)
Run Code Online (Sandbox Code Playgroud)

更新:我试图在没有jQuery的情况下创建脚本标记:

var scriptTag = document.createElement('script');
scriptTag.type = 'text/javascript';
scriptTag.innerHTML = JSData;
Run Code Online (Sandbox Code Playgroud)

scriptTag.innerHTML = JSData;行,IE8给Unknown runtime error.谢谢IE8.

ken*_*bec 15

您的仅javascript方法需要将脚本元素添加到文档中.

IE <9无法识别脚本标记上的innerHTML或childNodes,但所有浏览器都支持text属性.

var scriptTag = document.createElement('script');
scriptTag.text= JSData;
document.body.appendChild(scriptTag);
Run Code Online (Sandbox Code Playgroud)