2011-12-06 178 views
2

您能否在html中獲得絕對路徑。在javascript中獲取絕對路徑

如果我使用location.href我可以得到的網址,但我如何修剪filename.html?

有沒有更好的方法來獲得路徑。

謝謝!

+0

給自己一個JavaScript引用:[MDN window.location](https://developer.mozilla.org/en/DOM/window.location) – epascarello

回答

4

location.pathname爲您提供網址的本地部分。

location.pathname.match(/[^\/]+$/)[0]只給你最後一部分。如果你是http://somedomain/somefolder/file.html - 它會給你file.html

+1

在比賽結束後添加一個'[0]',以便提取實際價值。否則,你以一串匹配結束(*在本例中只有一個*) –

+0

沒錯。謝謝! –

2
var full = location.pathname; 
var path = full.substr(full.lastIndexOf("/") + 1); 
3

對於這個頁面,如果你檢查window.location對象,你會看到

hash:  
host:  stackoverflow.com 
hostname: stackoverflow.com 
href:  http://stackoverflow.com/questions/8401879/get-absolute-path-in-javascript 
pathname: /questions/8401879/get-absolute-path-in-javascript 
port:  
protocol: http: 
search:  

Documentation at MDN

所以location.pathname是你想要的。如果你想提取最後一部分使用正則表達式。

var lastpart = window.location.pathname.match(/[^\/]+$/)[0]; 
0

試試這個:

var loc = window.location.href; 
var fileNamePart = loc.substr(loc.lastIndexOf('/') + 1); 
0

或者,如果你需要的一切,從協議到最後 '/',你可以使用:

new RegExp('[^?]+/').exec(location.href) 

,不要擔心它會匹配第一個'/'是因爲'+'是一個貪婪的量詞,這意味着它會盡可能地匹配它。第一部分'[^?]'是在參數之前停止匹配,因爲'/'可能出現在像t.php?param1=val1/val2這樣的參數值中。