2010-05-15 18 views
0

Il faut que ça directement au problème:Chargement des fichiers Jscript dans Firefox extension

que je fais en fait une extension firefox dans laquelle je voudrais mettre en œuvre l'API jWebsocket afin de construire une petite conversation. J'ai obtenu mon fichier de script principal, nommé test.js, et la bibliothèque jWebsocket dans un dossier js. Juste pour que vous sachiez, ceci est ma première extension firefox.

Donc, dans mon fichier XUL J'ai eu ce (pour la partie de script uniquement bien sûr, le code d'interface est non représentée):

<overlay id="test-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    <script type="application/x-javascript" src="chrome://test/content/test.js" /> 
    <script type="application/x-javascript" src="chrome://test/content/js/jwebsocket.js" /> 

jwebsocket.js étant le fichier que je dois appeler selon Site Web jWebsocket.

Dans mon fichier script test.js Je commence avec:

if (jws.browserSupportsWebSockets()) 
{ 
    jWebSocketClient = new jws.jWebSocketJSONClient(); 
} 
else 
{ 
    var lMsg = jws.MSG_WS_NOT_SUPPORTED; 
    alert(lMsg); 
} 

JWS étant l'espace de noms créé dans le fichier jwebsocket.js.

Bien sûr, le serveur autonome requis fonctionne en arrière-plan et fonctionne. Donc, d'après ce que j'ai compris en regardant différents sites web, c'est que si un fichier js est chargé dans l'espace mémoire alloué javascript (avec la balise), tous les espaces/fonctions devraient être disponibles entre chaque fichier. Mais c'était surtout pour les problèmes orientés HTML, donc je ne suis pas sûr que cela s'applique à l'environnement XUL/Firefox.

Mais le script continue d'échouer lors du premier appel jws.

Des idées sur ce qui ne va pas ici? Je suis coincé depuis 2 jours maintenant:/

+0

Je ne connais pas beaucoup les extensions, mais le fichier script de la bibliothèque ne devrait-il pas aller * avant * le code qui l'utilise? – Pointy

+0

Aussi, je suis un peu doutant que la chose jwebsockets va fonctionner dans le contexte XUL. – Pointy

+0

Déjà essayé de passer commande, pas de changements:/ – colon3l

Répondre

0

Oui, est le même de développement HTML, vous avez votre espace de noms disponible entre chaque fichier XUL. Jetez un coup d'oeil here pour les espaces de noms dans les extensions firefox.

Quelle erreur obtenez-vous?

Edit:

Avez-vous initialisé votre JWS objet avant d'appeler browserSupportsWebSockets()? Comme Pointy dit, vous devez charger test.js après votre fichier jwebsocket.js.

+0

Merci pour le lien, l'espace de noms jwebsocket semble être bien formé. Et je ne reçois aucune erreur, j'ai placé une * alerte * avant et après le bloc de code que j'ai posté, le premier fonctionne, pas le second, et le code est juste censé créer un * jWebSocketJSONClient *. – colon3l

+0

Placez l'alerte à l'intérieur si et d'autre, avant l'assignation, de sorte que vous pouvez obtenir ce que le code exécute –

+0

Eh bien ... non je n'ai pas. Comment puis je faire ça ? Sry Je ne suis pas vraiment en javascript.(Mais le jwebsocket est maintenant chargé avant, mais comme je l'ai dit aucun changement) EDIT: aucune alerte ne se déclenche entre if ou else, donc il doit échouer lors de l'appel du * jws.browserSupportsWebSockets() * – colon3l