Ответ 1
var url = window.location.toString();
window.location = url.replace(/function=search/, 'function=loginsearch&user=admin&password=admin');
У меня есть что-то вроде 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 - так
function=search
заменяется на
function=loginsearch&user=admin&password=admin
внутри URL. Нужна помощь с тем, какой JavaScript я должен сохранить как кнопку на панели инструментов браузера, чтобы щелкнуть и изменить URL-адрес в адресной строке.
var url = window.location.toString();
window.location = url.replace(/function=search/, 'function=loginsearch&user=admin&password=admin');
Если вы хотите сделать это без обновления страницы, я боюсь, что это невозможно. Вы можете изменить только хеш-тег с помощью Javascript, т.е. http://example.com/page/#hashtag, что вы можете сделать с помощью window.location.hash
.
UPDATE (11 сентября 2011): Смотрите HTML5 History API DEMO и документы.
location.href = location.href.replace(
'function=search&', 'function=loginsearch&user=admin&password=admin&')
Единственный способ обновить отображаемый URL без перезагрузки страницы - history.pushState
window.history.pushState("", "", "/your-new-url");
Вы можете найти выделенную библиотеку 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');