Пользовательский скрипт для замены части URL

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

// @include      http://*
// @include      https://*
// @run-at       document-start
// ==/UserScript==

var url = window.location.href;

if (url.search("images.abc.com") >= 0) {
    url = url.replace('300','620');
    window.location = url;
}

1 ответ

Решение

Вы используете window.location=url который меняет расположение окон и ваша страница обновляется. Вы можете сделать что-то вроде этого, чтобы обновить URL без перезагрузки страницы.

Меняется только то, что после хеша - старые браузеры

document.location.hash = 'lookAtMeNow';  

Изменение полного URL. Chrome, Firefox, IE10+

history.pushState('data to be passed', 'Title of the page', '/test');  

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

history.replaceState('data to be passed', 'Title of the page', '/test');

Полное решение

var url = window.location.href;

if (url.search("images.abc.com") >= 0) {
    url = url.replace('300','620');
    /*window.location = url;*/
    history.pushState('data if any', 'Title of the page if any', url);
    history.replaceState('data if any', 'Title of the page if any', url);
}
Другие вопросы по тегам