动态脚本加载

时间:2011-05-16 12:03:44

标签: javascript html internet-explorer

我正在忙于一个项目,我有一些额外的javascript文件需要在项目运行时加载。为此,我创建了以下代码:

var script = _thisIframe.contentDocument.createElement('script');
script.type = 'text/javascript';
script.src = 'main.js?' + Math.random();

_thisIframe.contentDocument.body.appendChild(script);

此代码在Firefox,Safari,Chrome,Opera IE9和IE8中运行良好。但它在IE7中并不存在 在这里我收到以下错误:

SCRIPT5007: Unable to get value of the property 'createElement': object is null or undefined

创建createElement行时会创建错误。

我搜索了这种类型的错误,但我找不到答案。

由于

1 个答案:

答案 0 :(得分:1)

IE7中不支持

contentDocument,或者更具体地说,您收到该错误,因为contentDocument不是_thisIframe的属性,因此会返回undefined,当然没有createElement()方法。

使用contentWindow.document获取IE7支持。

获取正确属性的一种简单方法是利用||逻辑运算符及其short circuiting性质,以及JavaScript返回条件中的最后一个求值(大多数情况下 truthy 操作数)。

var doc = _thisIframe.contentDocument || _thisIframe.contentWindow.document;