2014-11-05 130 views
0

我有一个iframe页面。IE8类型不匹配错误?

iframe驻留在同一个域中,所以没有x域问题。

我需要iframe将它的一些内容复制到父级。

所以我有父页,象这样

... 
<div id="some-content"> 
    <iframe src="frame-1.html" style="display:none;"></iframe> 
</div> 
... 

的iframe这是帧1.HTML

<!doctype html> 
<html lang="en"> 
<head> 
</head> 

<body> 
    <div name="content"> 
    <img src="http://placehold.it/300x250/ffffff/E8117F&text=from+frame+1" /> 
    </div> 
    <script> 
    (function() { 
     var content = document.getElementsByName("content")[0]; 
     var iframeName = this.name; 
     var iframeContainer = parent.document.getElementsByName(iframeName)[0].parentNode;0 
     iframeContainer.appendChild(content); 
    })(); 
    </script> 
</body> 
</html> 

它适用于现代的浏览器不错,但未能在IE8/9 ?

我想象的类型不匹配来自内容变量不是类型节点?

任何人都知道我在做什么错了?

+0

什么错误你在控制台? – prog1011 2014-11-05 11:16:20

+0

“类型不匹配”是错误逐字记录 – spinners 2014-11-05 11:18:43

+1

'name'不是'div'支持的属性..这可能是为什么它有问题 – 2014-11-05 11:45:51

回答

1

如果您有问题getElementsByName请改为querySelectorAll。它在IE8中工作。

var content = document.querySelectorAll('[name="content"]')[0]; 

CSS选择器功能非常强大,IE8支持足够的这些功能非常有用。

的属性选择在IE8工作的唯一要求是使用HTML5的doctype,

<!DOCTYPE html> 

其中 - 在旧版浏览器 - 被渗入严格的HTML4。

+0

完美工作,非常感谢 – spinners 2014-11-05 12:04:15