【问题标题】:Send data to separate window javascript将数据发送到单独的窗口javascript
【发布时间】:2012-05-24 06:11:51
【问题描述】:

我使用以下方法从现有页面创建了一个新的弹出窗口:

window.open("myUrl","myName","width=200,height=200");

现在在那个弹出窗口上我有一个文本输入和一个按钮,我想为按钮创建一个 onclick 方法,将文本输入值发送到创建弹出窗口的页面而不使用表单或 php,这可能吗?

【问题讨论】:

标签: javascript


【解决方案1】:

您可以使用 window.opener 关键字

假设您的父类中有一个 javascript 方法 doSomething(value){....},然后从您的 POPUP 中您可以使用

调用父函数
window.opener.doSomething("here is my data from child sent to parent");

更新

【讨论】:

    【解决方案2】:

    假设父窗口和新窗口在同一个域中,你应该可以直接操作它们的 JS 环境:

    var w = window.open("myUrl", "myName", "width=200,height=200");
    var e = w.document.getElementById('someId');
    // do something with element e
    

    如果它们位于不同的域中,如果您的目标浏览器不支持 window.postMessage,您可能需要使用window.postMessage 或其他跨域消息传递技术。

    【讨论】:

    • 为什么?他想在创建的窗口中的元素上添加一个处理程序,该处理程序在父窗口中执行某些操作。这可以在任一方向完成。
    • 但是从孩子到父母的语法是不同的 - 它是在孩子中触发的
    • 是的,但是您仍然可以从父母到孩子完成它。
    【解决方案3】:

    任何打开的窗口调用都会形成对新窗口的获取请求。这是一种非常简单的方法,您可以使用 URL 本身传递要发送的参数,例如,

    var myUrl = "http://example.com/test?myName=" + myName;
    window.open(myUrl,"windowName","width=200,height=200");
    

    现在您可以在页面上获取 myName 作为请求参数。请试试这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2016-09-09
      • 2016-01-29
      相关资源
      最近更新 更多