0

NPRuntime プラグインを firefox プラグイン ディレクトリにコピーすることで、Web ページで正常に実行できました。それを使用してFirefox拡張機能を作成したいので、ステータスバーにテキストボックスとボタンを表示する小さな拡張機能を作成しました。ボタンをクリックすると、テキストボックスから値を取得し、NpRuntimeプラグインの関数に引数として渡すjavascript関数が呼び出されますXUL に組み込まれています。

しかし、関数を呼び出そうとすると、その変数が null であるため Javascript 例外が発生します。

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
}

関数呼び出しを削除してもエラーは発生しないため、埋め込みタグが JavaScript によって認識されます。プラグイン dll を firefox plugins ディレクトリに保持しました。また、拡張ルートの下にプラグイン ディレクトリを作成し、そこに dll を保持しようとしましたが、成功しませんでした

私が行くのを手伝ってください、

ありがとう

4

2 に答える 2

1

「XULに埋め込まれている」

どのように?XUL名前空間で<embed>を使用しているに違いありませんが、これには特別な意味はありません。

HTML名前空間を定義し、html名前空間でembedタグを使用する必要があります。

関数呼び出しを削除してもエラーは発生しないため、埋め込みタグがjavascriptによって認識されます。

これは間違っています。関数呼び出しを削除すると、失敗するコードは残りません。getElementByIdはスローされません(少なくともこのような単純なケースでは)。これは、XULコードに問題がないことを示すものではありません。

また、拡張ルートの下にプラグインディレクトリを作成し、その中にdllを保持しようとしましたが、成功しませんでした。

それは間違いなく機能するはずです。問題を示すXPIをどこかに置くことができますか?

于 2010-02-21T00:09:41.310 に答える
0

Firefox 拡張機能から NPAPI プラグインを呼び出すのは注意が必要です。ちょっとしたハックのように思える 1 つのオプションは、ブラウザー UI を表す DOM にプラグインを実際に挿入することです。

より良いオプションは、ページがブラウザーに読み込まれるときにページの DOM を変更することです。

スクリプト可能な NPAPI プラグインが Firefox で動作しない

または、NPAPI プラグインを完全にスキップして、js-ctypes を使用することもできます。

Firebreath で生成されたプラグインを Firefox 拡張機能で使用していますか?

于 2011-09-27T16:45:43.757 に答える