2012-05-08 2 views
2
var openedWindow = window.open("test.html", "title"); 

openedWindow.addEventListener("load", function() { 
    console.log("received load event"); 
}, false); 

열려있는 창에서로드 이벤트를 가져 오려고합니다. 위의 코드는 작동하지만 Opera 11.62에서 콜백 함수가 호출되지 않습니다 (다른 브라우저에서 작동 함). 내가 밀어 한 내부 버그 보고서 (CORE-46278) 조금 -Opera : window.open()에서로드 이벤트를 가져올 수 없습니다.

이 오페라에서 알려진 버그 것 같다
var openedWindow = window.open("test.html", "title"); 

window.setTimeout(function() { 
    openedWindow.addEventListener("load", function() { 
     console.log("received load event"); 
    }, false); 
}, 0); 

답변

0

:

편집 : 내가 에선 0ms 시간 초과 후 이벤트를 등록 할 때 그것은 작동 앞으로.

내가 생각할 수있는 유일한 대안은 팝업 내용 - 유형 opener.popupLoaded()에서 콜백을 추가하는 것입니다. 그러나 이것은 성능 이점을 제공 할 수도 있습니다. 스크립트 환경이 준비되고로드 이벤트를 기다리는 대신 대화하려는 스크립트가 실행 중일 때 팝업과 상호 작용을 시작할 수 있습니다.

+0

버그 보고서를 보내 주셔서 감사합니다. :) – Martin

+0

해결 방법과 관련된 유일한 문제는 팝업의 URL이 고정되어있어 알 수 없기 때문입니다. – Martin

+0

팝업의 내용에 스크립트를 추가 할 수 있으면 콜백이 정상적으로 작동합니다. – hallvors

관련 문제