Изменить URL без перезагрузки страницы

Я пытаюсь изменить URL-адрес страницы без перезагрузки страницы. Если я попробую это в консоли, URL-адрес изменится:

if (localStorage.getItem('product') !== null) {
    storedVariable = localStorage.getItem('product');
    url = window.location.href;
    url += '?product=' + storedVariable;
}
window.history.pushState("", "", url);

Однако, когда я помещаю этот код в диспетчер тегов Google, URL-адрес моей страницы используется по умолчанию. Как я могу это исправить?


person Piggy    schedule 14.10.2015    source источник
comment
stackoverflow.com/a/12446376   -  person Piggy    schedule 14.10.2015


Ответы (1)


Возможно, связано с: mdn History_API

pushState() принимает три параметра: объект состояния, заголовок (который в настоящее время игнорируется) и (необязательно) URL-адрес. Рассмотрим каждый из этих трех параметров более подробно:

  • объект состояния — объект состояния — это объект JavaScript, который связан с новой записью в истории, созданной функцией pushState(). Всякий раз, когда пользователь переходит к новому состоянию, запускается событие popstate, а свойство состояния события содержит копию объекта состояния записи истории.

    Объектом состояния может быть что угодно, что можно сериализовать. Поскольку Firefox сохраняет объекты состояния на диске пользователя, чтобы их можно было восстановить после того, как пользователь перезапустит браузер, мы налагаем ограничение на размер сериализованного представления объекта состояния в 640 000 символов. Если вы передаете объект состояния, сериализованное представление которого больше, чем это, в pushState(), метод выдаст исключение. Если вам нужно больше места, рекомендуется использовать sessionStorage и/или localStorage.

person Anonymous0day    schedule 14.10.2015
comment
Извините, я не знаю диспетчера тегов Google, но, может быть, указав ему URL? - person Anonymous0day; 14.10.2015