Abrir una URL en la pestaña / window actual desde una extensión de Firefox

Estoy creando una extensión de Firefox … ¿cuál sería el javascript para abrir una URL en la pestaña actual desde un elemento de menu?

por ejemplo, en mi file overlay.xul tengo la siguiente línea:

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

pero en Firefox, cuando hago clic en el elemento del menu, abre la URL pero arruina todo el layout del browser.

¿Cuál es la forma correcta de hacer esto?

4 Solutions collect form web for “Abrir una URL en la pestaña / window actual desde una extensión de Firefox”

Después de navegar, descubrí que tenía que replace el código anterior por este:

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

Desde un elemento de menu, puede usar openUILinkIn . Funciona como:

 openUILinkIn(url, where); 

donde puede ser: pestaña, actual, window (y algunas otras opciones que rara vez se usan)

Si desea comportarse de manera diferente en function de los modificadores de keyboard que está presionando un usuario, puede usar otra function donde ToOpenLink , que devuelve tab / actual / window en function de las preferences y modificadores de los usuarios.

 openUILinkIn(url, whereToOpenLink(event)); 

Por lo tanto uso:

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

Si no está en el context de un elemento de menu, es posible que desee comprobar otro XBL incorporado que agrega enlaces y la apertura de HREF para una label:

 <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');"/> 

Abrir URL en una nueva pestaña.

Llame a estas funciones JS en su command

 //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); } 
  • Obtenga la versión del browser desde la extensión de Firefox
  • Accediendo a las cookies, con suerte en JavaScript
  • Encontrar el usuario actualmente conectado desde una extensión de Firefox
  • ¿Por qué ChromeWorker arroja "Componentes no definidos"?
  • ¿Cómo puedo acceder a un object de window de pestaña recién abierto?
  • ¿Cómo establecer una key XUL de forma dinámica y segura?
  • abrir un enlace en una nueva pestaña en la misma window
  • .setAttribute ("disabled", false); cambia el atributo editable a falso
  • ¿Cómo habilitar el depurador de JavaScript embedded en el browser SWT?
  • Evento que se desencadena antes de DOMContentLoaded
  • divisor - networkingimensionar nodo específico
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.