2010-01-19 70 views
0

我需要檢索HTM文件的文件名 - 文件需要檢索自己的文件名 - 用於同一文件中的另一個Javascript函數。到目前爲止,我有 -用Javascript檢索文件名(無URL?)

var Docname = "ESSA_CL_2009_01" 
var DSstem = new Spry.Data.XMLDataSet("ESSA10_DA_sourceData_19_1.xml", "ESSA_CL_2009/" + Docname + "/Item_stem"); 

(輕快或AJAX的東西已經被設置)

我想的VAR DOCNAME動態地生成。它還沒有URL,因此我無法控制其最終目的地。

任何幫助將不勝感激。謝謝。

+0

在這種情況下,「ESSA_CL_2009_01」是什麼? – 2010-01-19 00:21:38

+0

如果我要手動執行操作,ESSA_CL_2009_01是沒有.htm後綴的文件名。不過,我想動態地做事情,所以我希望代碼替換上面放入的第一行代碼。我在想(與我第一次說的相反),它仍然有一個URL ..我只需要沒有其前面的URL內容,沒有後綴的文件名。 – andrew 2010-01-19 00:45:27

+0

現在發生了類似的問題,在http://www.webmasterworld.com/forum91/386.htm上進行了討論。在那裏提供的用於從URL檢索文件名的代碼如下所示: var url = document。網址; var Docname =(url.substring(url.lastindexOf(「\\」)+ 1,url.lastindexOf(「\。」))); //對於windows var Docname =(url.substring(url.lastindexOf(「\ /」)+ 1,url.lastindexOf(「\。」))); // for * nix document.write(Docname); 無論出於何種原因,這似乎不工作.. – andrew 2010-01-19 00:47:08

回答

1

如果「Docname」引用當前頁面的靜態文件路徑,則可以使用document.location.pathname獲取URL的路徑名部分,然後將其解析爲字符串以僅抓取您希望的部分。

+0

謝謝..恩 - 不會有一個靜態文件路徑:該文件的最終目的地位置將是不同的,是未知的..使用var url = document .URL似乎是成爲代碼的第一行,而不是路徑名(?)的正確方式 - 但它也不起作用。(我嘗試了var url = document.location.pathname;) – andrew 2010-01-19 00:58:33

0
var getFileName = function (uri) { 
    var fileName = uri.substr(uri.lastIndexOf("/") + 1); 
    return fileName.substr(0, fileName.lastIndexOf(".")); 
};