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); } 
  • Obtener HTML fuera de la selección / range de una página web en Mozilla Firefox
  • ¿Cuál es la diferencia entre tabbrowser, browser, gBrowser?
  • ¿Por qué mi function init () no se está ejecutando? (Al agregar automáticamente un button de la barra de herramientas al instalar una extensión de Firefox, pero solo en la primera ejecución)
  • Fuente de sugerencia automática desde la function de contenido de Chrome JS en el complemento de Firefox
  • Accediendo a las cookies, con suerte en JavaScript
  • ¿Cómo puedo acceder a un object de window de pestaña recién abierto?
  • ¿Cómo saber si la networking está (des) conectada?
  • XPCOM C ++ multithread y javascript de callback
  • Obtenga la versión del browser desde la extensión de Firefox
  • Comprobando si la input de usuario es un URI válido en XUL
  • ¿Cómo recibir correctamente el evento DOMContentLoaded desde un iframe XUL?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.