3


ウィンドウ参照名で子ウィンドウを起動しています。毎回変わる子ウィンドウの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 イベントは 1 回だけトリガーされます。

パフォーマンスの問題につながる可能性があるため、setinterval を使用して window.location.href の変更を確認したくありません。

子ウィンドウの URL を取得する他の方法はありますか?

4

1 に答える 1

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
于 2014-04-30T12:48:11.223 に答える