use*_*093 24 javascript iframe
我有一个文件:1.html和iframe里面.
我想从iframe访问1.html(iframe外部)中存在的元素(比如myelement).
我怎样才能做到这一点?
我试过了:
top.getElementById("myelement")
top.document.getElementById("myelement")
parent.getElementById("myelement")
parent.document.getElementById("myelement")
Run Code Online (Sandbox Code Playgroud)
但它不起作用!!
Gar*_*ers 41
对于跨源资源,iframe和父文档之间的通信是不可能的.仅当iframe和包含页面来自同一主机,端口和协议时才会起作用 - 例如http://example.com:80/1.html和http://example.com:80/2.html
对于跨源资源,您可以使用window.postMessage两者之间的通信,但这仅在浏览器支持此方法并且您可以控制两种资源时才有用.有关parent.document.getElementByIdMDC页面的更多详细信息:https://developer.mozilla.org/en/DOM/window.postMessage
编辑 - 假设两个资源来自同一个来源
在iframe中,window.parent引用父文档的全局对象,而不是文档对象本身.我相信你需要使用window.postMessage