【问题标题】:Cross window js interaction between a popup and another window of the same domain弹出窗口与同一域的另一个窗口之间的跨窗口js交互
【发布时间】:2009-10-11 12:36:34
【问题描述】:

我正在尝试从 example.com 的窗口 a 打开一个弹出窗口。然后关闭窗口a 并在同一域(example.com)打开另一个窗口b。是否可以从窗口b 访问窗口a 的DOM 以及如何访问?

弹出窗口是通过a@窗口打开的

window.open('http://example.com/blah', 'somename', settings..), 

从窗口 b 使用不同的 url(如下所示)执行相同的操作

window.open("http://example.com/blah2", "somename" ...) 

这似乎表明通过窗口名称访问窗口。但是我找不到任何方法来访问带有或不带有窗口名称的弹出窗口的 DOM。我该怎么做?

【问题讨论】:

    标签: javascript dom window popupwindow


    【解决方案1】:

    试试类似的东西

    var newWind = window.open('http://example.com/blah', 'somename',settings);
    if (newWind.opener == null) {
        newWind.opener = window;
    }
    // here you can access DOM of new window
    var newDoc = newWind.document;
    

    【讨论】:

    • 这样弹窗会重新加载url,不重新加载url就可以访问dom吗?
    • 哦.. var newWind = window.open('', 'somename',settings);允许访问窗口,其中 window.open('sameurl', 'somename', settings) 再次加载 url。谢谢..
    • 但这不是“现场”。似乎 Opener 获得了 DOM 树的本地副本,但无法访问另一个窗口中的实际 DOM 树。 Opener 可以对本地副本进行更改,但更改并不会反映在打开的窗口中,而且这样的更改大多是无用的。此外,我怀疑修改“newWind.opener = window;”有什么好处,即我怀疑“newWind”引用的实际窗口是否可以访问这样的修改。
    猜你喜欢
    • 2020-04-17
    • 2014-10-07
    • 2012-12-12
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 2018-05-10
    • 1970-01-01
    相关资源
    最近更新 更多