2010-11-29 2 views
3

Firefox(FF)拡張機能を開発していて、FFの特定のボタンが押されたときに関数を呼び出しています。場合によっては、FFがスクリプトファイルから自分の機能を見つけられない場合もあります。代わりに、ブラウザの拡張機能でそれを検索し、エラーをスローします。Mozilla拡張名前空間:私の関数と関数を他のパッケージと区別する方法は?

一般に、他のパッケージのおそらく同じ名前の関数とは明確に区別するために、関数の前に名前空間を使用するにはどうすればよいですか。例えば:については

のようなものがあります:

<script type="application/javascript" src="chrome://mythird/content/script.js"/> 
<statusbar id="status-bar"> 
    <statusbarpanel id="mythird-statusbarpanel" label="mythird" onclick="chrome://mythird/myalert();"/> 
</statusbar> 

だけではなく:

<statusbarpanel id="mythird-statusbarpanel" label="mythird" onclick="myalert();"/> 

答えて

3

あなたの機能の名前空間として通常のオブジェクトを使用することができますが。オブジェクトに拡張機能の名前を付けます(これはユニークで素晴らしいものでなければなりません)。

var gYourExtensionName = {}; 

gYourExtensionName.myalert = function(){/*...*/}; 

とXULで:スクリプトファイルで

<script type="application/javascript" src="chrome://mythird/content/script.js"/> 
<statusbar id="status-bar"> 
    <statusbarpanel id="mythird-statusbarpanel" 
        label="mythird" 
        onclick="gYourExtensionName.myalert()" /> 
</statusbar> 

はまた、次のようになります。Firefox Extensions: Global Namespace Pollution

関連する問題