Я столкнулся с этим, нуждаясь в решении, которое работало правильно и «красиво» в различных браузерах, , включая 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
для этого приводит к такому же поведению. Не используйте SQL для этого. Используйте PROC SORT.
proc sort data=source out=test nodupkey;
by X;
run;