2011-02-26 26 views
1

我想下面的示例URL卸下主播,但不爭論,通過JavaScript

http://www.mydomain.net/site?argument1=test1&argument2=test2#anchor 

改變

http://www.mydomain.net/site?argument1=test1&argument2=test2 

使用JavaScript。我最好怎麼做?

編輯:'錨'和其他文本元素,我的意思是通用元素。所以錨點也可以是另一個文本。抱歉。

+3

第一個URL被破壞,錨點必須在**結尾**(在查詢字符串後面) – Quentin 2011-02-26 19:27:21

+0

@David Dorward:哦,我沒有注意到,謝謝。這已經有助於相當多的問題... – pyvi 2011-02-26 19:30:36

+0

@David Dorward:URL是完全正常的(它是'http://www.mydomain.net/site#anchor?argument1 = test1&argument2 = test2')這種形式可以用於創建Ajax請求的歷史記錄,包括參數。 「查詢字符串」是散列的一部分。 – 2011-02-26 19:34:31

回答

5

如果你試圖改變當前位置的錨,這是更好地改變window.location.hash

window.location.hash = ''; 

在某些瀏覽器,這將避免隨着URL的變化重新加載頁面。

+0

這將導致'#'仍然存在。另外,我認爲它也會刪除所有參數。 – pyvi 2011-02-26 19:28:11

+0

「另外,我認爲它也會刪除所有參數。」正如我所知道的那樣,錨點需要到最​​後,所以這不是問題。我想所有剩下的就是替換「#」 – pyvi 2011-02-26 19:31:38

+0

它不會刪除正確格式化的URL中的參數(參數在散列之前);如果散列之後有參數,那麼它們不是真正的參數,只是散列的一部分。 – 2011-02-26 19:40:05

-1
window.location = window.location.replace('#anchor',''); 
0

試試這個:

window.location = window.location.replace(/#anchor/,""); 
0

好了,我想這一點,和它的工作完美的罰款:

var url=window.location.toString(); 
url=url.replace(/#anchor/,''); 
window.location=url; 
0

這應該更換#anchor也#anchor_etc或#錨等從您的網址
var url = "http://www.mydomain.net/site?argument1=test1&argument2=test2#anchor";
url = url.replace(/\#[a-z\-\_]+/i, '');