使用postMessage()以交叉原始方式传递消息

时间:2017-08-31 05:08:47

标签: javascript google-chrome-extension postmessage

我正在开发一个chrome扩展,我在两个窗口上工作。第一个窗口已经通过JavaScript打开了第二个窗口。我想要做的是,获取第一个窗口打开的窗口的URL。我尝试了一些方法,比如使用cookie,本地存储,但由于交叉原始策略,我失败了。现在我在JavaScript的postMessage()API教程之后了解到它克服了跨源策略。我正在做的是,我正在从我的localhost访问URL,并尝试获取任何其他网站的URL,或者我可以从中获得一条简单的消息,但它也不适用于我。因为我甚至没有得到任何错误,甚至没有警告。我的目标是在子窗口加载后获取URL。我将要求加载功能,以便我可以在将窗口发送到我当前窗口后立即检查窗口是否已加载。

我的代码

var win = window.open('https://javascript.info/','_blank');
    win.focus();
    win.postMessage('The URL of the window is : ' + document.URL,'http://localhost.com/ext_files/index.php');

window.addEventListener("message", function(event) {
        if (event.origin != 'https://javascript.info/') {
          // something from an unknown domain, let's ignore it
          return;
        }
        alert(event.data);
});

0 个答案:

没有答案