0 votes

Utilisation du plugin NPRuntime dans l'extension Firefox

J'ai réussi à exécuter le plugin NPRuntime sur une page web en le copiant dans le répertoire des plugins de firefox. Je veux créer une extension firefox en l'utilisant, donc j'ai créé une petite extension qui affiche une zone de texte et un bouton dans la barre d'état, le clic sur le bouton appelle une fonction javascript qui prend la valeur de la zone de texte et la passe comme argument à la fonction du plugin NpRuntime qui est intégré dans XUL.

Mais lorsque j'essaie d'appeler la fonction, je reçois une exception Javascript car cette variable est nulle.

try{
var myplugin=document.getElementById("myplugin");
myplugin.test(document.getElementById("txtUri").value);// calling function
}catch(e){
alert(e.message); //throws the error as myplugin is null
}

Lorsque je supprime l'appel de fonction, il n'y a pas d'erreur pour que la balise embed soit reconnue par javascript. J'ai gardé une dll de plugin dans le répertoire des plugins de Firefox. J'ai également essayé de créer un répertoire de plugins sous l'extension Root et d'y placer ma dll, mais sans succès. .

S'il vous plaît, aidez-moi à démarrer,

merci

1voto

Nickolay Points 14384

"qui est intégré dans XUL"

Comment ? Je parie que vous utilisez <embed> dans l'espace de noms XUL, qui n'a pas de signification particulière.

Vous devez définir l'espace de noms HTML et utiliser la balise embed dans l'espace de noms html .

Lorsque je supprime l'appel à la fonction, il n'y a pas d'erreur, donc la balise embed est reconnue par le javascript.

C'est faux. Si vous supprimez l'appel de fonction, il n'y a plus de code susceptible d'échouer -- getElementById ne se lance jamais (du moins pas dans des cas aussi simples). Cela n'indique pas que votre code XUL est bon.

J'ai également essayé de créer un répertoire de plugins sous l'extension Root et d'y placer ma dll, mais sans succès.

C'est-à-dire définitivement censé fonctionner . Pouvez-vous mettre un XPI qui démontre le problème quelque part ?

0voto

Nick Sawadsky Points 83

L'appel de plugins NPAPI à partir d'extensions Firefox est délicat. Une option, qui semble un peu compliquée, consiste à injecter le plugin dans le DOM qui représente l'interface utilisateur du navigateur.

Une meilleure option consiste à modifier le DOM des pages au moment où elles sont chargées dans le navigateur :

Le plugin NPAPI scriptable ne fonctionne pas avec Firefox

Vous pouvez aussi vous passer complètement du plugin NPAPI et utiliser js-ctypes :

Utiliser un plugin généré avec Firebreath dans une extension Firefox ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X