0

도구 모음 버튼을 클릭하려면 활성 탭의 URL 주소를 가져와야합니다. e10s 추가 기능에서 활성 탭 URL을 얻는 방법

window.gBrowser.selectedBrowser.contentDocument 

그러나

CPOW 오류를 가져옵니다.

e10s 부가 기능 내에서 활성 탭 URL의 URL 위치는 어떻게 얻을 수 있습니까?

+1

[파이어 폭스 확장 기능의 종류] 무엇 (https://developer.mozilla.org/en-US/Add-ons) 당신은 ([WebExtensions] (HTTPS하고 있습니다 : //developer.mozilla.org/en-US/Add-ons/WebExtensions), [Add-on SDK] (https://developer.mozilla.org/en-US/Add-ons/SDK), [Bootstraped] (https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions) 또는 [Overlay/XUL/Legacy] (https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions)를 참조하십시오.))? 귀하의 질문에 해당하는 태그를 [편집]하십시오. 'window.gBrowser'를 사용하면 Bootstraped 또는 Overlay/XUL/Legacy가 될 가능성이 더 큽니다. – Makyen

+0

예 Bootstraped 또는 Overlay/XUL/Legacy입니다. 나 자신에 의해 새 태그를 추가 할 수 없을까? –

+0

태그 추가 또는 제거를 포함하여 언제든지 질문을 직접 수정할 수 있습니다. bootstrapped/restartless 및 overlay에 대한 태그를 추가했습니다. – Makyen

답변

1

사용할 수있는 객체에 둘러보고, 그리고 source code에, 당신이 활성 탭의 URI를 받아야 곳처럼 보이는 것은 : 현재 nsIURI에서

:

window.gBrowser.currentURI.spec 

객체 window.gBrowser.currentURI

[nsIURI].spec //Returns a string representation of the URI. 
[nsIURI].asciiSpec //The URI spec with an ASCII compatible encoding. 
[nsIURI].specIgnoringRef //Returns a string representation of the URI without the ref 
         // (part after the #) portion. 
를 비롯한 많은 속성을 가진 nsIURI을 반환합니다. urlbar에서

window.gBrowser.selectedBrowser._documentURI 

:

당신은 또한 현재 선택한 탭의 nsIURI를 얻을 수 있습니다
당신은, 물론, urlbar에서 URL을 당길 수 :

window.document.getElementById('urlbar').value 

찾기 window :
위의 모든 내용은 현재 활성 창에 대해 window을 적절하게 설정했다고 가정합니다. 예를 들어, 같은 것을 수행하여

// Add/remove a "/" to comment/un-comment the code appropriate for your add-on type. 
    /* Add-on SDK: 
    let window = require('sdk/window/utils').getMostRecentBrowserWindow(); 
    //*/ 
    //* Overlay and bootstrap (from almost any context/scope): 
    Components.utils.import("resource://gre/modules/Services.jsm"); //Services 
    let window=Services.wm.getMostRecentWindow("navigator:browser");   
    //*/ 
+0

Makyen, 같은 추가 기능을하지만 지금은 도구 상자 버튼으로 활성 문서의 head 요소에 CSS 태그를 삽입해야합니다. 콘텐츠 스크립트없이 e10을 사용할 수 있습니까? 아니면 새로운 질문을해야합니까? –

+0

@JohnBernard, 새로운 질문입니다. 그러나 일종의 컨텐츠 스크립트가 필요하다는 신념에서 옳은 것입니다. 백그라운드 스크립트와 활성 문서의 분리는 다중 프로세스 (e10s)의 애드온에 대한 주요 효과 중 하나입니다. 콘텐츠 스크립트를 사용하지 않으면 매우 제한된 양의 정보 (예 : 위와 같은 URL) 만 백그라운드 프로세스에서 사용할 수 있습니다. – Makyen

+0

고마워요. @Makyen. 감사합니다. –