2016-11-20 5 views
0

私は開発しているThunderbird Extension(アドオン)で少しJSコードを実行しています。コードにはいくつかの基本的なJavaクラスが含まれています。ThunderbirdアドオンでRhino Javascriptを使用する(または回避する)方法は?

var s = java.lang.String (''); 

エラーや返品なしで動作を停止(フリーズ)します。

私はCLIで同じJavaコードを実行すると問題なく動作します。

私は見ていましたが、私が今理解していることは、これらの 'java.lang.String'のことがRhinoというJSエンジンでのみ動作することです。 Mozillaには、「spidermonkey」という別のJSエンジンもあります。

  1. Thunderbird(アドオン用)で動作するJSエンジンはどれですか?
  2. アドオンに常時デプロイせずに、TBで実行するJSコードをどのように作成/テストできますか?
  3. なぜ、java.lang.Stringはjsutがフリーズし、未定義のシンボルについて与えたり、エラーを返すのではなく、停止しますか?
  4. java.lang.StringクラスをTB拡張で使用するにはどうすればよいですか?

あなたはRhinoの& SpiderMonkeyの間の基本的な違いを考え出したもののおかげ

答えて

0

は、this questionへの回答は、様々なJavascriptのエンジンの違いについての詳細情報が含まれています。サンダーバードで

Which JS engine run in Thunderbird (for the addons)?

JSエンジンの実行がSpiderMonkey

How can I write/test JS code that will run in TB, without deploying it into an addon all the time?

であるあなたは、あなたが>>接頭辞で、テキストボックスにJSを実行することができますエラーコンソールを開き、Thunderbirdの中にはCtrl + Shiftキー+ Jを押すことができます。

Why does the java.lang.String thing just freeze and stop instead of giving and error about an undefined symbol?

IMHOは、例外ブロックに当たっていました。

var str = java.lang.String('Hello'); 
/* 
Exception: ReferenceError: java is not defined 
@Scratchpad/3:10:5 
*/ 

How can I make classes java.lang.String work in a TB extension?

一つの可能​​なオプションは次のとおりです。例外次もSpiderMonkeyのを使用してFirefoxであなたのコードを実行

var str = new java.lang.String('hello'); 
ReferenceError: java is not defined [Learn More] 

生産さ:サンダーバードのエラーコンソールでコードを実行

次のエラーを生成しましたXPCOMを使用しますが、そのページ自体は今後XPCOMアドオンの非推奨について警告します。

関連する問題