2011-07-05 12 views
1

私はいくつかの他のjsファイルをロードするメインのjsファイルからなるjQueryプラグインを開発しています。すべてのファイルを 'myPlugin'フォルダに入れ、メインファイルをインポートするページの場所に関係なく、メインのjsファイルで他のスクリプトを探したいと思っています。jQueryプラグインの相対的な位置を調べる

location.pathname私はプラグインをロードするページのパスを取得しますが、プラグインに自分の場所に関連して何かをロードするように指示するにはどうすればよいですか?次の例では

は、私はそれが pageAまたは pageBからロードされるかどうか required1.jsを見つけるために、 myPlugin.jsをしたい:...

pageA.html 
/../pageB.html 

myPlugin/ 
    -myPlugin.js (How does `myPlugin.js` find `required1.js`?) 
    -required1.js 
    -required2.js 

おかげ

+0

相対パスの代わりに絶対パスを使用すると非常に簡単です。 –

+1

@ Henrik-プラグインをインストールする場所の絶対的な場所を事前に知る方法はありません。 – Yarin

+0

良い質問です。また、[RequireJS](http://requirejs.org)のようなスクリプトローダーを調べて、すべての面倒な作業を行う必要があります。 –

答えて

1

私は考えることができる唯一のことは、見つけようとすることです含むページのDOM内のmyPlugin.jsへの参照:

$('script[src$="myPlugin.js"]').attr("src").replace(/myPlugin\.js$/, 'required1.js') 

これはhですしかし、間違いを起こす傾向があります。私はゼロのconfソリューションが絶対に必要な場合にのみ使用します。それ以外の場合は、プラグインを設定して他のファイルの場所を知ることができます。

+0

これはこの場合に有効です。より一般的な解決策は、[DOM内の最後のスクリプトタグを見つける]ことです(http://stackoverflow.com/questions/2203079/get-url-for-currently-executing-javasript/2203207#2203207)現在実行中のスクリプトを指しているものになります)。 –

関連する問題