Frage

Ich erstelle eine Firefox-Erweiterung ... was wäre das Javascript, um eine URL im aktuellen Tab von einem Menüpunkt aus zu öffnen?

z.B.In meiner Datei overlay.xul habe ich die folgende Zeile:

<menuitem label="Visit homepage" oncommand="window.location='http://www.somepage.com'"/>

Aber wenn ich in Firefox auf den Menüpunkt klicke, wird die URL geöffnet, aber das gesamte Layout des Browsers wird dadurch durcheinander gebracht.

Wie geht das richtig?

War es hilfreich?

Lösung

Nach dem Surfen um, fand ich, dass ich den obigen Code mit diesem zu ersetzen hatte:

<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/>

Andere Tipps

Von einem Menüpunkt aus können Sie verwenden openUILinkIn.Es funktioniert wie folgt:

openUILinkIn(url, where);

wo kann sein:Tab, Aktuell, Fenster (und ein paar andere selten verwendete Optionen)

Wenn Sie sich abhängig davon, welche Tastaturmodifikatoren ein Benutzer drückt, unterschiedlich verhalten möchten, können Sie eine andere Funktion verwenden whereToOpenLink, das Tab/aktuelles/Fenster basierend auf den Benutzereinstellungen und Modifikatoren zurückgibt.

openUILinkIn(url, whereToOpenLink(event));

Daher verwende ich:

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

Wenn Sie sich nicht im Kontext eines Menüelements befinden, möchten Sie vielleicht einen anderen integrierten XBL ausprobieren, der verknüpfende und öffnende HREFs für eine Beschriftung hinzufügt:

<label value="google" class="text-link" href="http://google.com/" />
<menuitem label="Visit Report Site" oncommand="var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow('navigator:browser'); win.openUILinkIn('http://www.google.com', 'tab');"/>

URL öffnet in neuem Tab.

Rufen Sie diese Funktionen auf Ihrem Befehl 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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top