Как выбрать отдельные, но включить все остальные переменные в финальную таблицу?

Я столкнулся с этим, нуждаясь в решении, которое работало правильно и «красиво» в различных браузерах, , включая Mobile Safari (iOS9 во время публикации). Ни одно из решений не было совершенно правильным. Я предлагаю следующее (проверено на IE11, FireFox, Chrome & amp; Safari):

history.pushState(null, document.title, location.href);
window.addEventListener('popstate', function (event)
{
  history.pushState(null, document.title, location.href);
});

Обратите внимание на следующее:

  • history.forward() (мое старое решение) не работает на Mobile Safari - кажется, ничего не делает (то есть пользователь все равно может вернуться). history.pushState() работает над всеми из них.
  • третий аргумент history.pushState() является url . Решения, которые передают строку типа 'no-back-button' или 'pagename', похоже, работают нормально, пока вы не попробуете Refresh / Reload на странице, после чего возникает ошибка «Страница не найдена», когда браузер пытается найти страницу с этим как его Url. (Возможно, браузер также включит эту строку в адресную строку, если на странице, которая является уродливой.) location.href следует использовать для Url.
  • второй аргумент history.pushState() является [д2] название [/ д2]. Оглядываясь в Интернете, большинство мест говорят, что оно «не используется», и все решения здесь проходят null для этого. Однако, по крайней мере, в Mobile Safari, который помещает Url страницы в раскрывающийся список истории, пользователь может получить доступ. Но когда он добавляет запись для посещения страницы, как правило, она помещает в свой заголовок , что предпочтительнее. Таким образом, передача document.title для этого приводит к такому же поведению.
0
задан ldan 4 March 2019 в 22:59
поделиться