Замените параметр строки запроса с помощью Jquery и поместите его в адресную строку без обновления.

Я должен заменить st=6 на st=7 с помощью jquery или javascript и обновить адресную строку. Я попытался использовать плагин JQuery Address, но я могу ссылаться только на часть после #

Не могли бы вы предложить мне, как мне обновить строку запроса перед #. Строка запроса упоминается ниже.

http://test.com/search/searchresults?st=6&term=chicken#/?term=chicken&pi=1&ps=10

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

Немного срочно, не могли бы вы предложить мне решение для этого. Благодарю.

4 ответа

Если вы хотите обновить реальный URL в адресной строке, то это новая функция HTML5, которая широко не поддерживается.

Например:

window.history.pushState(“object or string”, “Title”, “/new-url”);

Глядя на caniuse.com, кажется, что это ожидается в следующих основных версиях всех браузеров:

Вы все еще можете изменить URL, но это приведет к перезагрузке страницы с помощью window.location = "http://www.example.com/";

Вы должны быть в состоянии использовать другое регулярное выражение на этой странице для создания URL, на который вы хотите перенаправить.

Вы можете использовать регулярное выражение, например так:

var addr = 'http://test.com/search/searchresults?st=6&term=chicken#/?term=chicken&pi=1&ps=10';
var newVal = 7;

addr.replace(/([?&])st=\d+/, '$1st=' + newVal);

Попробуй это

var str = 'http://test.com/search/searchresults?st=6&term=chicken#/?term=chicken&pi=1&ps=10';
str.replace(/(st\=)\d+&/, "$1" + '7'); // replace '7' with any number you like

Это не jQuery, это javascript (материал, из которого сделан jQuery:) с помощью регулярного выражения, и он должен делать свою работу в вашем случае.

Я думаю, что то, что вы просите, недостижимо, подумайте о странице формы входа в банк, где вы заменяете текущий URL реальным URL банка, это может вызвать серьезные проблемы с безопасностью.

Другие вопросы по тегам