Как получить 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");
//*/