0
var extension= { 
check_domain : function(domain){ 
     //checking the domain name where event should occur........ 
}, 
on_load: function(e) { 
    var doc_event = e.originalTarget; 
extension.check_domain(doc_event.location.href); 
}, 
init: function(e) { 
if(gBrowser){ 
    gBrowser.addEventListener("DOMContentLoaded", this.on_load, false); 
    } 
} } window.addEventListener( "load", function(e) { extension.init(); }, false); 

새 탭 또는 링크를 클릭하면 on_load 함수가 호출됩니다. 하지만 내 문제는 활성 탭에서 새 탭으로 새 링크를 여는 경우 새 탭에서 일어날 예정인 이벤트가 활성 탭에서 일어나고 백그라운드에서 새 탭이로드된다는 것입니다. 모든 이벤트가 새 탭에없는 활성 탭에서 발생하는 것처럼 링크 수를 여는 중입니다.같은 탭에서 이벤트가 발생하며 fire fox 확장에서 활성 탭에서 새 탭으로 링크를 여는 중

내가 원했던 것은 그것이 뒷 배경에서 실행 되더라도 새 탭에서 이벤트가 발생해야한다는 것입니다. 새 탭을 식별하고 새 탭에서 이벤트가 발생하는 방법 ... (옵션 =>) 새 탭을 활성화하지 않고.

답변

1

이벤트가 발생한 탭을 확인하는 방법에 대해 설명하지 않았고, 현재 활성 탭을보고 있다고 생각합니다. 배경 탭에로드 된 것이 있으면 당연히 작동하지 않습니다. 대신 e.target (로드 된 문서)을보고이에 해당하는 탭을 확인해야합니다 : (또한 null 문서로드 된 경우 수 있습니다

on_load: function(e) { 
    var doc = e.target; 
    var browser = gBrowser.getBrowserForDocument(doc); 
    ... 
}, 

이 문서가로드 탭의 당신의 <browser> 요소를 줄 것이다 최고 수준의 문서가 아니 었습니다).

+0

감사합니다. 브라우저 요소를 사용하면 스크립트를 더 쉽게 만들 수 있지만 문제는 해결되지 않습니다 ....... 새 탭에서 발생하는 것으로 예상되는 이벤트는 이전 탭에서도 계속 발생합니다 ....... 도와주세요.. – KAS