【问题标题】:Javascript selector to select field in parent window from popup windowJavascript选择器从弹出窗口中选择父窗口中的字段
【发布时间】:2013-05-02 10:20:52
【问题描述】:

我有一个父 HTML 窗口和一个弹出窗口。当我单击弹出窗口内的按钮时,我想访问父窗口中的字段。

我已经尝试过了,但它在弹出窗口中不起作用:

top.document.getElementById('itemCounter').innerHTML = '1';

它会抛出以下异常:

Javascript selector - `top.document.getElementById('itemCounter')` returns null from popup screen but return object `top.document.getElementById('itemCounter')` from parent screen.

我正在使用 window.open 打开弹出窗口。

有人知道如何从弹出窗口访问父窗口中的字段吗?

谢谢

【问题讨论】:

  • 你能写出打开弹出窗口的那一行吗?我需要它来解决问题。

标签: javascript html dom


【解决方案1】:

topparent 仅适用于 IFRAME 弹出窗口。如果您使用window.open() 打开一个全新的窗口,则需要使用opener 访问打开弹出窗口的页面。所以,试试:

opener.document.getElementById('itemCounter').innerHTML = '1';

【讨论】:

    【解决方案2】:

    您应该能够使用以下代码访问弹出窗口的父级 - this.parent。这应该返回父窗口对象。您可以进一步使用该对象进行更多操作。

    【讨论】:

      【解决方案3】:

      你应该试试:

      alert(window.opener...);
      

      使用类似window.opener.document.getElementById('id') 的东西。我有时会使用它来查看它是否是正确的父代。

      【讨论】:

        【解决方案4】:

        尝试使用 Opener 对象中的 document.getElementById() 而不是顶部对象。

        popupWinOpener.document.getElementById('itemCounter').innerHTML = '1';
        

        【讨论】:

          【解决方案5】:

          我的问题已解决。我用过-

          window.opener.top.document.getElementById('id').innerHTML = '1';

          我想在父窗口中访问 iFrame 中的对象。谢谢大家

          【讨论】:

            猜你喜欢
            • 2011-03-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多