24 junio, 2008

FUEL - Extensiones simples en Firefox 3

En 2007 John Resig (Mozilla foundation) creó junto con Mark Finkle una librería/API Javascript que facilitaba mucho la interacción con la interfície XPCom (XUL) del navegador Firefox. Dicha librería está disponible en la versión 3 de Firefox. Hoy, John Resig lo recuerda en su blog y da enlaces a la página principal, a la documentación y a una presentación de la tecnología. Ejemplos a continuación:

  • Abrir Google.com en una nueva pestaña y activarla
    Application.browser.open("http://google.com/").active = true;
    
  • Cerrar la pestaña actual del navegador
    Application.browser.activeTab.close();
    
  • Cerrar todas las pestañas que apunten a Google
    Application.browser.tabs.forEach(function(tab){
      if ( tab.url.match(/google/) )
        tab.remove();
    });
    
  • Añadir un marcador a Mozilla.org
    Application.bookmarks.add("Mozilla", "http://mozilla.org/");
    
  • Eliminar todos los marcadores a Microsoft.com
    Application.bookmarks.all.forEach(function(cur){
      if ( cur.url.match(/microsoft.com/) )
        cur.remove();
    })
    

Addendum: En Sentido Web también lo explican.

5 comentarios:

jp dijo...

disculpa la ignorancia ...
pero no entiendo como usar el código, como lo llamas desde firefox ???
no tienes algún link de un ejemplo concreto ?

gracias

alsanan dijo...

jp, se trata de una librería para XUL, el lenguaje "interno" de Firefox (Gecko). Si estás usando la versión 3 de Firefox, debe estar disponible directamente, pero sólo para crear extensiones del navegador o para trabajar con lenguaje XUL (XML+Javascript para definir interfícies de usuario exclusivas para Firefox).

En cualquier caso, tienes más pistas en esta página:
var Application = Components.classes["@mozilla.org/fuel/application;1"].getService(Components.interfaces.fuelIApplication);

alsanan dijo...

Para ver un ejemplo rápido con XUL, copia el siguiente código, pégalo en un archivo de texto con el nombre hello.xul, guarda y arrástralo hasta Firefox. El menú de arriba está hecho con XUL.

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/xul.css" type="text/css"?>
<!DOCTYPE window>
<window id="main-window" xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<menubar>
<menu label="File">
<menupopup>
<menuitem label="Hello World!" onclick="alert('Hello world!\n');"/>
</menupopup>
</menu>
</menubar>
<html:iframe id="content-frame" src="file://c:" flex="100%"/>
</window>

jp dijo...

voy entendiendo ... algo habia leido sobre xul

con la linea
var Application = Components.classes["@mozilla.org/fuel/application;1"].getService(Components.interfaces.fuelIApplication);
creas en objeto para poder trabajar con fuel y las sentencias que aparecen en tu post

¿pero como mezclo fuel con un archivo xul ? ¿en un js que es llamado desde el xul?

gracias

alsanan dijo...

En cualquier tutorial sobre XUL ( http://www.xulplanet.com/tutorials/xultu/ ) te indican como introducir código Javascript en archivos XUL ( http://www.xulplanet.com/tutorials/xultu/events.html ).

Publicar un comentario en la entrada

Últimos links en indiza.com