我正在尋找一種以Javascript方式獲取當前文檔URL的整潔方式。不帶參數的當前URL,哈希值,http(s)://
- URL應該是乾淨的參數(?參數1 = BLA &參數2 = BLA)
- 的URL應該是乾淨
- HTTP/HTTPS應被刪除/合併到散列標籤(#jumppoint)的http
我知道我可以通過location.href得到當前的URL,然後使用一些正則表達式來清理它,但也許有更好的/更乾淨的解決方案來擺脫垃圾?
我正在尋找一種以Javascript方式獲取當前文檔URL的整潔方式。不帶參數的當前URL,哈希值,http(s)://
我知道我可以通過location.href得到當前的URL,然後使用一些正則表達式來清理它,但也許有更好的/更乾淨的解決方案來擺脫垃圾?
除以外,window.location
還有許多其他參數。查看全部參考這裏:https://developer.mozilla.org/en/DOM/window.location
什麼你正在尋找作爲首發可能是window.location.hostname
:
「主機名(不包括端口號或方括號 )。」
從示例URL http://[www.example.com]:80/search?q=devmo#test
的主機名將是www.example.com
。
如果您還希望包括路徑和強制HTTP://協議,嘗試:
'http://' + window.location.hostname + window.location.pathname;
作爲一個方面說明,一個漂亮的伎倆從另一個URL比窗口得到相同的參數。位置是創建一個空的錨:
var a = document.createElement('a');
a.href = 'http://www.example.com:80/search?q=devmo#test';
console.log('http://' + a.hostname + a.pathname);
你有document.location
對象,所以:
var oLoc = document.location,
sUrl = oLoc.protocol + oLoc.hostname;
// or "http://" + oLoc.hostname
嘗試:
window.location.hostname;
您可以使用這些替代函數刪除散列和搜索參數和規範HTTPS訪問http:
url = url.replace(/#[^#]*$/, "").replace(/\?[^\?]*$/, "").replace(/^https:/, "http:");
或者,如果你真的想要的是域和路徑,你可以使用這個:
window.location.hostname + window.location.pathname
的Location object得到你所需要的給定答案
window.location.hostname + window.location.pathname
沒有解決的事實,協議可以是HTTP或HTTPS作爲OP的稱號。爲了適應這種情況,我建議:
document.location.protocol +"//"+ document.location.hostname + document.location.pathname
請試試這個片斷:
if (!window.location.origin){
// For IE
window.location.origin = window.location.protocol + "//" + (window.location.port ? ':' + window.location.port : '');
}
url = window.location.origin + window.location.pathname;
document.write('Origin url: ' + url);
很久以前,這已經得到了回答。這個問題的答案是錯誤的,因爲如果頁面是https,它仍然會提供https://作爲原始協議 - 但是它應該剝離協議/將其讀爲http。 – bardiir 2015-01-22 11:21:23
for-IE代碼中是否缺少主機名?像 'window.location.origin = window.location.protocol +「//」+(window.location.port?':'+ window.location.port:'') +'/'+ window.location。 hostname;' – Alex 2016-01-18 15:03:15
是的,但不是按照以下順序:window.location.origin = window.location.protocol +「//」+ window.location.hostname +(window.location.port?':'+ window.location。港口 : ''); – Zzirconium 2017-03-16 14:17:45
我很想只是downvote調用的URL 「垃圾」 的重要組成部分! – Douglas 2012-03-01 09:39:32
@Douglas重要性是主觀的。在這個功能的背景下,只有主持人才是相關部分,這是完全合理的。 – 2012-03-01 09:40:38
ptorocol可以是ftp:以及你需要考慮它嗎? – kirilloid 2012-03-01 09:47:46