2011-09-03 61 views
0

我正在開發一個jQuery插件,它需要加載其他文件相對於我的'plugin.js'文件所在的同一目錄。有沒有辦法做到這一點?加載javascript的相對路徑

回答

1

實現此目的的一種方法是遍歷所有$('script')元素,標識代表插件包含的元素並提取路徑。當然,這可能不可靠,因爲您的插件的使用者可能已將您的.js文件重命名。

其實你有什麼是一個很奇怪的要求。難道你不能簡單地在插件的文檔中描述哪些腳本需要包含,或者只需將相關url作爲參數傳遞給插件?例如,許多jQuery插件將url作爲參數,以便消費者可以指定他放置其他必需腳本的位置。這允許消費者在這些外部腳本的位置上具有更大的靈活性。

+0

謝謝,這是有道理的。我想讓插件更加可重用,因爲加載的腳本總是相對於插件的位置(相同級別或子目錄)。如果插件要加載非js腳本文件(在我的情況下爲.cfm),那麼我想我總是可以爲插件創建一個選項。就像可重複使用一樣,但還有一個選項可供選擇。如果沒有指定路徑,那麼有一個默認會很好,但是這是同樣的問題,我想默認是相對於plugin.js位置。我會嘗試遍歷腳本元素來查看是否可以設置它。 – Jeff

0

你必須確保你的腳本被稱爲頁面

var scripts = document.getElementsByTagName("script"); 
var thisScript = scripts[0]; 
var thisScriptsSrc = thisScript.src; 

它的SRC實際的JavaScript,無論您與

+0

@Bakudan:你讀過我的答案的第一行嗎? – genesis

1

需要始終使用「你可以做的第一個/「在您嘗試查找的路徑的前面。 A「/」表示搜索在根目錄例如:

<img src="images/image.png"> // Will search for a directory inside the current directory. 
<img src="/images/image.png">  // Will search for a directory in the "Root" path. 

第一個例子爲相對於當前目錄directoy搜索,所述第二示例搜索位於託管網站的根目錄。