从iframe访问父窗口元素

时间:2013-02-20 04:59:46

标签: javascript iframe

  • 我有一个customer.jsp页面,其中包含iframe
  • iframe有一个按钮。点击按钮,我需要访问customer.jsp页面内的对话框。
  • 我尝试了window.parent.document.getElementById('formDialog');,但获得了null值。

5 个答案:

答案 0 :(得分:6)

window.parent.document.getElementById('target'); 

两个资源都应该在同一个来源

答案 1 :(得分:2)

跨域资源无法在iframe和父文档之间进行通信。它只有在iframe和包含页面来自同一主机,端口和协议时才有效 - 例如http://example.com:80/1.htmlhttp://example.com:80/2.html

 Assuming both resources are from the same origin

在iframe中,window.parent引用父文档的全局对象,而不是文档对象本身。我相信您需要使用parent.document.getElementById('formDialog')

答案 2 :(得分:0)

您可以通过parent.document.getElementById('formDialog');

访问父窗口元素

如果你得到null,你能够在那个Iframes父母的上下文中获得该元素吗?您是否引用了正确的ID和正确的父级?

答案 3 :(得分:0)

好像你忘记了代码中的某些内容。试试这个:

window.parent.window.document.getElementById('formDialog'); 

答案 4 :(得分:0)

试试这个。希望这可以帮助。我们假设我通过按钮点击iframe中的按钮来调用CallParentFunction。

function CallParentFunction(){
     if (top && top.opener && top.opener.top) {
        top.opener.document.getElementById('formDialog'); 
     }
      else {
        top.document.getElementById('formDialog'); 

     }
}