IE8上的类型不匹配错误



我有一个带有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相互渗透。

最新更新