我正在测试我们的网站,在IE8中遇到了可怕的Unexpected call to method or property access.
错误。
经过大量调试(IE8的devtools糟透了)后,我发现了违规行。
$('<script>').html(JSData).appendTo('head')
问题是$('<script>').html(JSData)
。我试着在控制台中运行它,但我仍然遇到错误。
为什么IE8不能在新创建的脚本标记上设置.html
?
P.S。这也失败了:
$(document.createElement('script')).html(JSData)
UPDATE :我试图在没有jQuery的情况下创建脚本标记:
var scriptTag = document.createElement('script');
scriptTag.type = 'text/javascript';
scriptTag.innerHTML = JSData;
在scriptTag.innerHTML = JSData;
行,IE8提供Unknown runtime error
。谢谢IE8。
答案 0 :(得分:15)
您的仅限javascript方法需要将脚本元素添加到文档中。
IE&lt; 9不识别脚本标记上的innerHTML或childNodes,但所有浏览器都支持text属性。
var scriptTag = document.createElement('script');
scriptTag.text= JSData;
document.body.appendChild(scriptTag);