JavaScript:从子窗口调用父窗口的功能

时间:2017-08-17 11:00:55

标签: javascript jquery html

我正在从页面打开一个弹出窗口。过程如下:

var newwindow = window.open("mydomain.com/a.html", "Testing", 'height=600,width=800');
if (window.focus) { newwindow.focus() }

mydomain.com/a.html打开一个弹出窗口mydomain.com/b.html

mydomain.com/b.html将用户重定向到另一个网站(比如支付网关) paymentgateway.com/authenticate.html

paymentgateway.com/authenticate.html将用户重定向到mydomain.com/success.html

mydomain.com/success.html开始,我想执行一个写在mydomain.com/a.html

上的函数

我写过

window.parent.LaunchFunction();
window.close();

但它没有用。可能是什么问题?有可能实现吗?

1 个答案:

答案 0 :(得分:0)

我提供另一种方式 - 使用本地存储进行同一来源的应用程序之间的通信(相同的协议+域+端口)。

您可以添加侦听器,当有人更改localstorage中的任何属性时会触发该侦听器。

第一个实例正在侦听

window.addEventListener('storage', onStorageChange, false);

function onStorageChange (e) {
  if (e.key === 'messageText') {
    var messageText = localStorage.getItem('messageText');
    if (messageText) { // Prevent to call when fired by `removeItem()` below
      console.log('New message from another instance has come:', messageText);
      localStorage.removeItem('messageText'); // this will fires the `onStorageChange` again.
    }
  }
}

第二个实例是发送消息

localStorage.setItem('messageText', 'Hello from second app instance');