0

問題に直接取り掛かりましょう:

私は実際に、小さなチャットを構築するためにjWebsocket APIを実装したいFirefox拡張を行っています。test.jsという名前のメイン スクリプト ファイルと jWebsocket lib を js フォルダーに入れました。これは私の初めての Firefox 拡張機能です。

したがって、私の XUL ファイルでは次のようになりました (もちろん、スクリプト部分のみで、インターフェイス コードは表示されません)。

    <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は、jWebsocket Web サイトに従って呼び出す必要があるファイルです。

私のメイン スクリプト ファイルtest.jsでは、以下から始めます。

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

jws は、 jwebsocket.jsファイルに作成された名前空間です。

もちろん、必要なスタンドアロン サーバーがバックグラウンドで実行され、機能しています。

したがって、さまざまなWebサイトを見て理解したところによると、jsファイルがjavascriptに割り当てられたメモリ空間(タグ付き)にロードされると、すべての名前空間/関数が各ファイル間で利用可能になるはずです。しかし、これは主に HTML 指向の問題のためのものであり、XUL/Firefox 環境に当てはまるかどうかはわかりません。

しかし、スクリプトは最初の jws 呼び出しで失敗し続けます。

ここで何がうまくいかないかについてのアイデアはありますか? 私は今2日間立ち往生しています:/

4

1 に答える 1

0

はい、HTML 開発と同じです。各 XUL ファイル間で名前空間を利用できます。Firefox 拡張機能の名前空間については、こちらをご覧ください。

どのようなエラーが表示されますか?

編集:

browserSupportsWebSockets() を呼び出す前に jws オブジェクトを初期化しましたか?

Pointy が言ったように、jwebsocket.js ファイルのに test.js をロードする必要があります。

于 2010-05-15T16:30:28.740 に答える