2011-01-12 57 views
9

我有類似http://domain.com/Pages/SearchResults.aspx?function=search&selectedserver=intranet&search_query=MyRecords,需要通過JavaScript和類似http://domain.com/Pages/SearchResults.aspx?function=loginsearch&user=admin&password=admin&selectedserver=intranet&search_query=MyRecords東西來取代它 - 這樣如何用JavaScript替換部分URL?

function=search 

正在替換

function=loginsearch&user=admin&password=admin 

的URL裏面。需要幫助我將JavaScript保存爲瀏覽器工具欄上的一個按鈕,以便點擊並更換地址欄中的網址。

+0

這是一個錯誤,已固定 – user63503 2011-01-12 02:02:45

+19

請告訴我,你是不是發送明文用戶名和密碼。 – 2011-01-12 02:02:47

回答

9
var url = window.location.toString(); 
window.location = url.replace(/function=search/, 'function=loginsearch&user=admin&password=admin'); 
2
location.href = location.href.replace(
    'function=search&', 'function=loginsearch&user=admin&password=admin&') 
2

如果你想這樣做而無需刷新頁面,恐怕是不可能的。您只能通過Javascript更改散列標記,即http://example.com/page/#hashtag,您可以通過window.location.hash來完成。

UPDATE(2011年9月11日):查看HTML5 history API

0

您可能會發現專用庫URI.js有幫助,尤其是setQuery()addQuery()方法。我貼的代碼,這個塊直接進入該網頁上的控制檯,它似乎工作:

var url = 'http://domain.com/Pages/SearchResults.aspx?function=search&selectedserver=intranet&search_query=MyRecords'; 
var uri = new URI(url); 
var new_params = {'function': 'loginsearch', 'user': 'admin', 'password': 'admin'}; 
uri.setSearch(new_params); 
console.log(uri.toString()); 

http://domain.com/Pages/SearchResults.aspx?function=loginsearch&selectedserver=intranet&search_query=MyRecords&user=admin&password=admin 
<- undefined 
> 

應該很容易把這種邏輯到函數(或一個班輪:))。順便說一句,爲什麼你在URL中傳遞憑證?

0
var url    = window.location.href;    
window.location  = url.replace(/function=search/, 'function=loginsearch&user=admin&password=admin'); 
0

無需重新加載頁面更新顯示的URL的唯一方法是history.pushState

window.history.pushState("", "", "/your-new-url");