我正在开发一个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);
});