[英]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
更改。
我的版本。 對我來說很好。
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.