2011-07-27 12 views
1

私は現在、私の会社の内部でのみ使用されるFirefox拡張機能を書き換えています。まず、ほとんどのロジックをxulオーバーレイ内のスクリプトタグを介してロードされた外部jsファイルに移動することから始めました。 (私たちの従業員に一貫してアップグレードさせることは難しいと思ったので、私はそれを回避できると思った)。Firefoxの内線番号から外部のスクリプトをロード

<overlay id="my-overlay" 
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
xmlns:html="http://www.w3.org/1999/xhtml"> 
<script type="application/x-javascript" src="https://my.company.com/path/to/jquery.min.js/> 
<script type="application/x-javascript" src="https://my.company.com/path/to/toolbar/main.js"/> 

<toolbox id="navigator-toolbox"> 

    <!-- some stuff here --> 

</toolbox> 

しかし、その後、私はそれが本番サーバーまたはアルファ/ベータからロードするかどうかを判断するために設定を使用することができるように、動的にスクリプトファイルをロードするのクレイジーなアイデアを持っていた:それはこのようにうまく働きましたサーバー。それは私が惨めに失敗した時です。

私は失敗し、次の試してみた://は絶対に何もに

  • $( 'オーバーレイ')を行わないように見えます:

    • $アヤックス({ 'スクリプト'、...のdataType}) .appendChild( ''、{SRC:...})は//スクリプトタグを追加しかし
    • document.createElementNS, etc //タグが付加されているスクリプトが、実行されない
    • はComponents.utils.import //受け入れない
    • を実行しませんhttpプロトコル
    • mozIJSSubScriptLoader //私はComponents.utils.evalInSandboxを試みたが、その制限を与えられていない

    httpプロトコルを受け入れていない、私はそれは、開発サイクルのわずかな簡素化の価値ではないであろう重要な他のコードの変更が必要になる恐れています。

    多くのMozillaドキュメントとバグを読んで、基本的に私がやろうとしているのはさまざまなセキュリティ上の懸念を打破することです(私は原則として理解していますが、もちろん私は両端を完全にコントロールしています)。

    私が気にすることは、スクリプトタグをハードコードする限り正常に動作するように見えますが、一度動的に生成しようとすると失敗するということです。私はタオルに投げつけるだけか、誰かがこの仕事をする方法を知っていますか?

  • 答えて

    1

    XMLHttpRequestを使用してファイルを読み込み、それを実行するためにeval()を呼び出すことを試みたことがありますか?それにもかかわらず、セキュリティの観点からは恐ろしいようですが、HTTPソースURLでスクリプトタグを使用するのは基本的に同じことです。

    +0

    おかしい、私はオプションとして私に起こったことはないとevalを避けることに慣れています。 –

    関連する問題