2015-11-04 52 views
0

我遇到包含函數的JavaScript文件的問題。 我有2個文件,其中包括JavaScript文件和包含的功能。 結構可以看看這種方式,例如:Javascript最佳實踐:從函數中的不同位置調用文件

/var/www/file1.jsp 
/var/www/content/file2.jsp 

既包括文件include.js與功能DoSomething的() 功能是調用位於通過GET服務器上的其他文件。 例如,文件位於/var/www/index.jsp

如何將調用index.jsp出使用相對路徑的功能的最佳方式(絕對pathes是不可能在這種情況下)。 問題是,file1.jspfile2.jsp有一個不同的上下文,它們包含.js文件,因此在這兩種情況下函數的當前路徑都是不同的。

回答

0

假設index.jsp總是在同一個地方,我就從window.location.href解析絕對URL和構建我的路徑index.jsp正確的,在doSomething()

編輯:

一個更好的辦法是讓瀏覽器爲你做網址解析。使用window.location.hostname,然後將硬編碼路徑連接到index.jsp,相對於您的域的根目錄。將串聯的字符串饋入您的GEt請求,並且一切都會很好。

+0

你將如何拆分URL,以便您可以獲得'file1.jsp'或'content/file2.jsp' – shirocko

+0

請參閱上面的我的編輯。通過使用根目錄作爲相對路徑的基礎(與當前上下文相反),無論doSomething()是什麼位置,都可以將相對路徑硬編碼爲「index.jsp」(前提是您不需要移動該文件)。 –