当我尝试我的代码时:
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 服务器,contentDocument
和 getSVGDocument
(用于 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/