Открытие URL на текущей вкладке/окне от Расширения Firefox

data-dojo-attach-point относится к узлу DOM, а не к самому виджету. Вы прикрепляете виджет к этому узлу, обычно в postCreate(). В вашем случае вы можете вызвать функцию show () напрямую:

showWarning: function() {
    this.show();
},
13
задан aryo 23 November 2008 в 15:35
поделиться

3 ответа

После просмотра вокруг, я нашел, что должен был заменить вышеупомянутый код этим:

<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/>
9
ответ дан 1 December 2019 в 22:58
поделиться

Назовите этот JS функциями на Вашей команде

//open a url current window:
function openUrl(url) {
content.wrappedJSObject.location = url;
newTabBrowser = gBrowser.selectedBrowser;
newTabBrowser.addEventListener("load", highlight, true);
}

//new tab
function openUrlNewTab(url) {
var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
            .getService(Components.interfaces.nsIWindowMediator)
            .getMostRecentWindow('navigator:browser');
win.gBrowser.selectedTab = win.gBrowser.addTab(url);
}
1
ответ дан 1 December 2019 в 22:58
поделиться

Из пункта меню вы можете использовать openUILinkIn . Это работает следующим образом:

openUILinkIn(url, where);

где могут быть: вкладка, текущее, окно (и несколько других редко используемых параметров)

Если вы хотите вести себя по-другому в зависимости от того, какие модификаторы клавиатуры нажимает пользователь, вы можете использовать другую функцию whereToOpenLink , который возвращает вкладку / текущее / окно на основе предпочтений и модификаторов пользователя.

openUILinkIn(url, whereToOpenLink(event));

Таким образом, я использую:

<menuitem label="Visit homepage" 
          oncommand="openUILinkIn('http://example.com/', whereToOpenLink(event))"/>

Если вы не находитесь в контексте элемента меню, вы можете проверить другой встроенный XBL, который добавляет ссылки и открывающие HREF для метки:

<label value="google" class="text-link" href="http://google.com/" />
8
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: