我正在启动一个带有窗口引用名称的子窗口。我想在每次更改时捕获子窗口的URL。
var winRef;
var url='http://www.google.com';
if(winRef == null || winRef.closed)
{
winRef = window.open(url, "mywindow");
winRef.focus();
alert(winRef.location.href);
}
winRef.captureEvents(Event.CHANGE);
winRef.onchange=function(){
alert('change event triggered');
console.log(winRef.location.href);
}
我尝试过事件LOAD,CHANGE来捕获窗口的位置变化。但LOAD和CHANGE事件只触发一次。
我不想使用setinterval检查window.location.href中的更改,因为它可能导致性能问题。
有没有其他方法来获取子窗口URL?
答案 0 :(得分:0)
您无法准确地检测到该事件,但您可以执行一种解决方法并检查所有X毫秒的URL。
var self = this
var detectsUrl = setInterval(function(){
var a = winRef.document.createElement('a');
a.href = winRef.document.URL;
if (a.hostname == "www.myURL.com") {
winRef.close();
clearInterval(detectsUrl);
self.callback();
};
}, 1000); // Here we check every seconds