2013-02-05 60 views
0

我的網站上沒有外部鏈接,因此我正在考慮選擇所有定位標記:$('a')並將當前的標籤值附加到所有這些的href中,但這看起來像是一團亂七八糟的事。有一個更好的方法嗎?我的網站的網址如下所示:www.rsadler.com/html/home.html#chairsAndTables但是,當您點擊我的任何鏈接時,網址會更新,顯然,沒有哈希標籤。 謝謝!什麼是點擊鏈接時維護hashtag值的乾淨方式?

+1

如果這是您需要的信息,應該持續用戶的會話,那麼使用會話cookie可能會更好。 –

+0

您的意思是「選擇所有錨定標記:$('.a')」或「選擇所有錨定標記:$('a')」? – Popnoodles

+0

@poopnoodles你是完全正確的! – dezman

回答

3

OP實際上意味着頁面更改,但散列需要傳遞給每個後續頁面。

$('a').each(function(){ 
    var href=this.href.split('#')[0]; 
    $(this).attr('href', href + window.location.hash); 
}); 
+0

我仍然希望我的鏈接正常工作。 – dezman

+1

定義「功能正常」 – Popnoodles

+0

去他們說去的地方。 – dezman

0

在點擊事件處理程序中調用preventDefault鏈接將阻止瀏覽器更新當前URL。

+0

我仍然希望我的鏈接正常工作。 – dezman

1

方法1:jQuery的

$(document).ready(function() { 
    $("a").each(function(){ this.src += window.location.hash; }); 
}); 

方法2:會話Cookie

window.onload = function() { 
    var winHash = window.location.hash; 
    var cookieHash = unescape((document.cookie.match(new RegExp('\bhash=(.*?)(?:;|$)','i')) || [null,''])[1]); 
    if(winHash == "" && cookieHash.length > 0) 
     window.location.hash = cookieHash; 
    else if(winHash != "") 
     document.cookie = "hash=" + escape(winHash) + "; path=/"; 
} 

我沒有測試以上的JavaScript,所以可能有語法錯誤。

相關問題