2011-01-12 5 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 - такКак заменить часть URL с помощью JavaScript?

function=search 

вытесняется с

function=loginsearch&user=admin&password=admin 

внутри URL. Нужна помощь с тем, какой JavaScript я должен сохранить как кнопку на панели инструментов браузера, чтобы щелкнуть и изменить URL-адрес в адресной строке.

+0

это ошибка, уже фиксированный – user63503

+19

Пожалуйста, скажите мне, что вы не посылаете имя пользователя и пароль в открытом виде. –

ответ

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

добавлена ​​кнопка со следующим кодом: javascript: var url = window.location.toString(); window.location = url.replace (/ function = search /, 'function = loginsearch & user = admin & password = admin'); и это сработало! Большое спасибо! – user63503

+0

не нужно для 'javascript:' перед кодом –

+0

@Juan: зависит от того, находится ли он в атрибуте onclick или нет. –

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

Если Вы желаете сделать это без перезагрузки страницы, я боюсь, что это невозможно. Вы можете изменить только хэш-тег через Javascript, т. Е. http://example.com/page/#hashtag, который вы можете сделать через window.location.hash.

ОБНОВЛЕНИЕ (11 сентября 2011 года): См. 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"); 
Смежные вопросы