2010-11-25 82 views
3

當我的event.value ==爲/時,我需要從網址中刪除#。 我有一個jquery.address的存儲引用打開圖像,當我關閉它我需要刪除#標記因爲這個原因窗口滾動頂部lighbox。JQuery.address如何從網址中刪除#(javascript window.location刪除#)

我成功的刪除了#標記:window.location.href.slice(0,-1);但正如你可以在上面的代碼中看到的那樣,當頁面加載時,不僅在我的事件之後導致url重寫。

我如何鏈接此JavaScript只有當我完成發生時,在這個函數被稱爲olny當我關閉燈箱的方式。

我附上我的代碼和評論。 謝謝大家

$.address.change(function(event) { 
    curLink = event.value; 
    if(curLink != '/') { 

    // here my stuff, jquery.address generates url with reference 

    // ex: mysite.com/cat/subcat/page.html#one 

    } else { 

     $('#element').animate({opacity:"0"},{duration:100, easing:"quartEaseOut", complete: function() { 

     // here I need to remove the hash only after the complete 

     // ex: mysite.com/cat/subcat/page.html# > mysite.com/cat/subcat/page.html 

     window.location.href.slice(0, -1);   
     $(this).hide(); 
    }}); 
    } 
}); 

回答

0

window.location.hash = ''不適用於我的情況。

window.location.href.slice(0, -1);作品!我無法解決的問題是如何在完整的jQuery事件(現在它在頁面加載時觸發)之後鏈接此JavaScript指令。

我認爲現在是愚蠢的JavaScript調用後jQuery的

謝謝

2

試試這個

newHash = window.location.hash.substring(1); 

console.log(newHash); 

,如果你有一個錨那麼它通常在網址的開頭附加左右,但刪除第一個字符,那麼你不應該把它作爲一個問題了。

,或者如果你甚至可以這樣說,我認爲這是你可能需要什麼

newHash = window.location.hash.replace('#', ''); 

console.log(newHash); 
+0

這是一個有用的評論,謝謝 – radleybobins 2012-11-27 03:44:13

1

我發現,改變了哈希後的價值與你相似的場景效果最好。它需要是您的頁面上尚未存在的散列。

function removeDeepLink(event) { 
    window.location.hash = 'foo'; 
}; 
1

你也使用這個(其中完全消除了哈希和清潔URL右後衛)

history.pushState("", document.title, window.location.pathname); 

從而改變

http://www.google.com/#top 

http://www.google.com/