【发布时间】:2012-08-25 10:53:01
【问题描述】:
我在 IE8 中测试我们的网站,遇到了可怕的 Unexpected call to method or property access. 错误。
经过大量调试(IE8 的开发工具很烂),我发现了问题所在。
$('<script>').html(JSData).appendTo('head')
问题是$('<script>').html(JSData)。我尝试在控制台中运行它,但仍然出现错误。
为什么 IE8 不能在新创建的脚本标签上设置.html?
附:这也失败了:
$(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。
【问题讨论】:
-
你试过用
text代替html吗? -
似乎只使用
eval()脚本会更容易/更好。 -
@Pointy:我可以使用
eval(或者更确切地说,jQuery 的$.globalEval),但我认为这可能“更快”。 -
你试过
$('<SCRIPT DEFER>')来避免IE中的security issue吗? -
@adeneo:
$('<script defer>').html(JSData)仍然抛出Unexpected call to method or property access.:-(
标签: javascript jquery internet-explorer-8