如何用JavaScript替换部分URL?

时间:2011-01-12 01:59:47

标签: javascript

我有类似http://domain.com/Pages/SearchResults.aspx?function=search&selectedserver=intranet&search_query=MyRecords的内容,需要用类似于http://domain.com/Pages/SearchResults.aspx?function=loginsearch&user=admin&password=admin&selectedserver=intranet&search_query=MyRecords的JavaScript替换它 - 所以

function=search 

正在替换为

function=loginsearch&user=admin&password=admin

在网址内。需要帮助我应该将JavaScript保存为浏览器工具栏上的按钮,以便点击并替换地址栏中的URL。

7 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:3)

如果您想要在不刷新页面的情况下这样做,我担心这是不可能的。您只能通过Javascript更改哈希标记,即http://example.com/page/#hashtag,您可以通过window.location.hash进行操作。

更新(2011年9月11日):请参阅HTML5历史记录API DEMOdocs

答案 2 :(得分:2)

 location.href = location.href.replace(
    'function=search&', 'function=loginsearch&user=admin&password=admin&')

答案 3 :(得分:2)

更新显示的网址而不重新加载页面的唯一方法是history.pushState

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

答案 4 :(得分: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中传递凭证?

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我的版本。对我来说很好。

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