2011-07-05 22 views
1

我正在開發一個jQuery插件,它包含一個主要的js文件,它將加載其他幾個js文件。我希望能夠將所有文件放入'myPlugin'文件夾,並且無論導入主文件的頁面位置如何,主js文件都可以找到其他腳本。確定一個jQuery插件的相對位置

location.pathname會給我加載插件的頁面的路徑,但是如何告訴插件加載相對於它自己的位置的東西?

在下面的例子,我想myPlugin.js找到required1.js無論是從pageApageB加載:

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 acky,雖然,並且容易出錯。如果零配置解決方案是絕對必要的,我只會使用它。否則,我只需要用戶配置插件,以便知道在哪裏可以找到其他文件。

+0

這應該適用於這種情況。更通用的解決方案是[在DOM中找到最後一個腳本標記](http://stackoverflow.com/questions/2203079/get-url-for-currently-executing-javasript/2203207#2203207)(在正常情況下將是指向當前正在執行的腳本的那個)。 –

相關問題