簡體   English   中英

如何用 JavaScript 替換部分 URL?

[英]how to replace part of the URL with JavaScript?

我有類似http://domain.com/Pages/SearchResults.aspx?function=search&selectedserver=intranet&search_query=MyRecords的東西,需要用類似於http://domain.com/Pages/SearchResults.aspx 的 JavaScript 替換它? function=loginsearch&user=admin&password=admin&selectedserver=intranet&search_query=MyRecords — 所以

function=search 

正在被替換為

function=loginsearch&user=admin&password=admin

網址里面。 需要幫助我應該將哪些 JavaScript 保存為瀏覽器工具欄上的按鈕以單擊並替換地址欄中的 URL。

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

在不重新加載頁面的情況下更新顯示的 URL 的唯一方法是history.pushState

window.history.pushState('', '', '/your-new-url');
 location.href = location.href.replace(
    'function=search&', 'function=loginsearch&user=admin&password=admin&')

如果您想在不刷新頁面的情況下執行此操作,恐怕這是不可能的。 您只能通過 Javascript 更改哈希標簽,即http://example.com/page/#hashtag ,您可以通過window.location.hash更改。

更新(2011 年 9 月 11 日):請參閱 HTML5 歷史 API演示文檔

我的版本。 對我來說很好。

let url = window.location.toString();
window.history.pushState('', '', url.replace(searching_string, new_string));

您可能會發現專用庫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 中直接傳遞憑據?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM