2011-10-07 60 views
2

我試圖動態確定我是否在某個頁面上,並在鏈接到它自己的任何鏈接上設置樣式(對於導航菜單)。如何從沒有外部信息的相對網址獲取絕對路徑?

抓住我的部分是如何確定頁面是當前頁面。

我知道我可以得到window.location,並將它與任何鏈接的href進行比較,但是存在分層文件夾,其中一些文件夾的命名方式相同,我不能依賴設置基本服務器url 。

基本上我需要將鼠標懸停在鏈接上時獲得的值,並將href屬性的所有相對性應用於當前位置。不過,我並不確定該怎麼做。

+0

你能舉一些例子嗎?我仍然不確定你想要什麼。 – Andy

回答

4

這其中效果最好的跨瀏覽器

//Resolve absolute url's from relative ones 
function qualifyURL(url){ 
    var img = document.createElement('img'); 
    img.src = url; // set string url 
    url = img.src; // get qualified url 
    img.src = null; // no server request 
    return url; 
} 
+0

偷偷摸摸!看起來像這樣一個奇怪的方式來做到這一點,但有意義的工作 – Damon

+0

這一個將在IE中工作,這就是爲什麼它更喜歡其他類型的元素。如果您喜歡,請將其標記爲答案,以便其他人可以找到答案。 – Drew

+0

請注意這一點。這個可以工作,但如果您嘗試在同一頁面上多次運行它,它會產生大量流量。 – Bargant

3

根據德魯的答案,我測試了這個

function resolveUrl(url){ 
    var a = document.createElement('a'); 
    a.href=url; // set string url 
    url = a.href; // get qualified url 
    return url; 
} 

它似乎適用於ie8和以上。 ie7不解決任何問題。

* -pike

+0

對於較新版本的Chrome,比'img'標籤的效果更好。它不會向服務器發送'/ null'請求。 –

相關問題