2012-03-30 9 views
5

Secondo this guida ho cercato di caricare JQuery alla mia Firefox estensione.jQuery.hoverIntent.js in estensione per Firefox non carica

var Myext = { 

    loadJQuery: function(wnd) { 
     var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"] 
     .getService(Components.interfaces.mozIJSSubScriptLoader); 
     loader.loadSubScript("chrome://myext/content/jquery-1.7.2.min.js", wnd); 
     var jQuery = wnd.jQuery.noConflict(true); 
     try { 
     loader.loadSubScript("chrome://myext/content/jquery.hoverIntent.js", jQuery); 
     catch (Except) { 
     alert(Except.toString()); 
     } 
     return jQuery; 
    }, 

    onLoad: function(e) { 
    Myext.jQuery = Myext.loadJQuery(window); 
    }, 

    showDialog: function(e) { 
    var $ = Myext.jQuery; 
    /* JQuery code */ 
    } 

} 

window.addEventListener("load", function(e) { Myext.onLoad(e); }, false); 
window.addEventListener("DOMContentLoaded", function(e) { Myext.showDialog(e); }, false); 

Caricatore ha un problema per caricare jquery.hoverIntent.js. Ho scaricato here

messaggio di errore: "Type Error: $ is undefined"

+0

jQuery.noConflict(); var doc = window.content.document; Avviso (jQuery ("body", doc) .html()); –

risposta

1

Per poter utilizzare .dialog() è necessario includere jQuery UI libreria anche. Mettere la riga successiva subito dopo aver caricato la libreria jQuery:

loader.loadSubScript("chrome://myext/content/jquery-ui-1.8.18.custom.min.js", wnd); 

L'ultima libreria jQuery UI è possibile scaricare dal here.

+0

L'ho fatto ma non riesco ancora a vedere la finestra di dialogo. Ho copiato solo il file 'jquery-ui-1.8.18.custom.min.js' nella directory' myext/content'. – xralf

+0

Sembra che nulla da JQuery funzioni. Quando sostituisco la funzione di dialogo con '$ (" a "). Click (function() { alert (" Hello world! "); });' Non riesco a vedere il messaggio quando faccio clic sui collegamenti. – xralf

+0

Dove si trova '

text
'? Dovrebbe essere parte del DOM della pagina html nella scheda. Inoltre probabilmente dovrai aggiungere smth. come '$ (" # dialog ", gBrowser.contentDocument) .dialog()' ... Controlla anche Error Console ('Ctrl' +' Shift' + 'J') e non dimenticare di riavviare Firefox dopo ogni modifica fatto. – gakhov

0

Questa linea:

onLoad: function(e) { 
    Myext.jQuery = Myext.loadJQuery(window); 
    }, 

non dovrebbero essere?

onLoad: function(e) { 
    Myext.jQuery = loadJQuery(window); 
    }, 
+0

L'ho provato ma non ha aiutato. Penso che dovresti fare riferimento al namespace. – xralf

Problemi correlati