我有一个带有iframe的页面。
iframe位于同一个域上,因此没有x域问题。
我需要iframe将它的一些内容复制到父级。
所以我有一个带有iframe的父页面,比如
...
<div id="some-content">
<iframe src="frame-1.html" style="display:none;"></iframe>
</div>
...
这是frame-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上失败了?
我想类型不匹配是因为内容变量不是类型节点?
有人知道我做错了什么吗?
如果getElementsByName
有问题,请尝试querySelectorAll
。它在IE8中工作。
var content = document.querySelectorAll('[name="content"]')[0];
CSS选择器非常强大,IE8支持足够多的选择器,非常有用。
属性选择器在IE8中工作的唯一要求是使用HTML5 doctype,
<!DOCTYPE html>
在旧的浏览器上,它作为严格的HTML4相互渗透。