我在文档中有一个如下元素,我可以通过document.getElementById(‘iframe_id’)获取iframe元素,但是如何在iframe中获取元素?我尝试了iframeElement.contentWindow,并且返回的DOMWindow没有属性.还尝试了iframeElement.docuemnt和iframeElement.contentDocument,它们都是未定义的.我怎么才能得到它?我在实验中使用了最新的Chrome.
这是iframe元素
<iframe id='iframe_id'> <html> <body>many content here</body> </html> </iframe>
解决方法
如果内容与询问它的脚本具有相同的协议,域和端口号,则只能查询iframe中的内容.它被称为
SAME ORIGIN
如果是这种情况,那么此代码将显示内容.如果不是 – 您无法从普通html页面中的普通脚本访问iframe
Demo – 在IE8,Chrome 13和Fx6中测试过
function showIframeContent(id) { var iframe = document.getElementById(id); try { var doc = (iframe.contentDocument)? iframe.contentDocument: iframe.contentWindow.document; alert(doc.body.innerHTML); } catch(e) { alert(e.message); } return false; } <iframe id='iframe_id1' src="javascript:parent.somehtml()"> </iframe> <br/> <a href="#" onclick="return showIframeContent('iframe_id1')">Show</a> <hr/> <iframe id='iframe_id2' src="http://plungjan.name/"> </iframe> <br/> <a href="#" onclick="return showIframeContent('iframe_id2')">Show</a> <hr/>