我正在忙于一个项目,我有一些额外的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行时会创建错误。
我搜索了这种类型的错误,但我找不到答案。
由于
答案 0 :(得分:1)
contentDocument
,或者更具体地说,您收到该错误,因为contentDocument
不是_thisIframe
的属性,因此会返回undefined
,当然没有createElement()
方法。
使用contentWindow.document
获取IE7支持。
获取正确属性的一种简单方法是利用||
逻辑运算符及其short circuiting性质,以及JavaScript返回条件中的最后一个求值(大多数情况下 truthy 操作数)。
var doc = _thisIframe.contentDocument || _thisIframe.contentWindow.document;