如果其网址发生变化,如何收听弹出窗口的“消息”?

时间:2018-06-05 18:44:42

标签: javascript

在网址http://localhost:9001/mypage上我有一个带有某项服务的身份验证网址的弹出窗口。

const authUrl = 'http://someauthservice.com/someurl'

const authPopup = window.open(authUrl, '');

authPopup.addEventListener('message', (event: any) => {
        console.log(event);
    });

当用户在该网址上进行身份验证时,弹出窗口会被重定向到我的回调网址http://localhost/callbackurl,其中有一个简单的页面,其中的代码发布了一个窗口消息:

window.postMessage('hey ho', 'http://localhost:9001/mypage');

在此流事件中,侦听器丢失事件并且不运行回调:

  1. 使用const authUrl = 'http://someauthservice.com/someurl' 打开弹出窗口。
  2. 点击auth按钮。
  3. 重定向到我的网址。
  4. 在此流程中,它可以正常工作:

    1. 使用const authUrl = 'http://localhost/callbackurl'打开弹出窗口。
    2. 因此,如果在弹出窗口中加载了某个url然后加载了我的url,则不再侦听该事件,但如果该url没有更改,则会侦听该事件并触发回调。

      当网址更改时,如何保留事件监听器?

      更新:我的想法是我想允许用户在第三方服务上进行身份验证,然后当它使用某些代码重定向到我的网址时,我明白身份验证是成功的,因此我希望我的主机应用程序运行一些逻辑,比如将某些变量从Pending更新为Verified

0 个答案:

没有答案