Как получить URL активной вкладки в дополнении e10s

Для нажатия кнопки на панели инструментов мне нужно получить URL-адрес активной вкладки.

Но

window.gBrowser.selectedBrowser.contentDocument

получает CPOW ошибка.

Как узнать местоположение URL активной вкладки в дополнении e10s?

1 ответ

Решение

Оглядываясь на доступные объекты, и в исходном коде, похоже, что вы должны получить URI для активной вкладки:

От текущегоnsIURI:

window.gBrowser.currentURI.spec

Предмет window.gBrowser.currentURI возвращает nsIURIкоторый имеет ряд свойств, из которых вы можете получить URI, в том числе:

[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для текущей выбранной вкладки как:

window.gBrowser.selectedBrowser._documentURI

Отurlbar:
Вы можете, конечно, вытащить URL изurlbar:

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");        
    //*/
Другие вопросы по тегам