我有一个包含iframe的页面。
iframe位于同一个域中,因此没有x-domain问题。
我需要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上失败了吗?
我认为类型不匹配来自内容变量不属于节点类型?
任何人都知道我做错了什么?
答案 0 :(得分:1)
如果getElementsByName
遇到问题,请改为querySelectorAll
。它适用于IE8。
var content = document.querySelectorAll('[name="content"]')[0];
CSS选择器非常强大,IE8支持它们非常有用。
属性选择器在IE8中工作的唯一要求是使用HTML5 doctype
<!DOCTYPE html>
- 在较旧的浏览器上 - 作为严格的HTML4互相渗透。