当我尝试我的代码时:

Testing.html -

<script language="JavaScript" type="text/javascript">
function find() {
var iframeEl = document.getElementById('love');
if ( iframeEl.contentDocument ) {
    var form = iframeEl.contentDocument.document.getElementById('hi').getAttribute('href');
    alert(form)
} else if ( iframeEl.contentWindow ) {
    var form = iframeEl.contentWindow.document.getElementById('hi').getAttribute('href');
    alert(form)
}
  }
</script>
<body onload="find()">
<iframe name="lovez" src="frame.html" id="love"><a href="http://www.google.com" id="hi">Testingz</a></iframe>
</body>

Frame.html -
<a href="http://www.google.com" id="hi">Testing</a>

它不会返回警告框。但是在 Internet Explorer 上它会。我一直在互联网上搜索,尝试所有示例,但找不到可以在 Google Chrome 中使用的简单示例。我做错了什么还是只是谷歌浏览器?

最佳答案

我注意到如果代码来自 Web 服务器,contentDocumentgetSVGDocument(用于 svg 文件中的 svg 对象)都可以正常工作,但是当我将代码复制到本地文件时,它将无法工作。

Here's a sample link 带有我复制的代码,该代码可在网络上运行,但不能从我的磁盘中运行。

Here's the solution 我刚刚从 Chrome 中找到(感谢 Artem S ),即使用 --allow-file-access-from-files 标志。

关于javascript - 谷歌浏览器不接受 .contentDocument 或 .contentWindow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5333878/

10-12 15:11