Подтвердить что ты не робот

IOS 7 - есть ли способ отключить функции салфетки назад и вперед в Safari?

Для некоторых веб-страниц мы используем прокрутку левой и правой функциональности iPhone, чтобы вытащить меню. Теперь с iOS7 они ввели возможность вернуться и перейти на предыдущую и последующие страницы истории браузера, чтобы прокрутить левое и правое движения.

Но есть ли способ отключить его для определенных страниц, чтобы не иметь противоречивого поведения при действиях салфетки?

4b9b3361

Ответ 2

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

Он не будет работать в каждом случае, но если у вас есть одностраничное веб-приложение, открытое на новой вкладке, вы можете помешать ему добавить в историю с помощью

window.history.replaceState(null, null, "#" + url)

вместо pushState или

document.location.hash = url

Ответ 3

Мне пришлось использовать два подхода:

1) CSS только для Chrome/Firefox

html, body {
    overscroll-behavior-x: none;
}

2) Исправление JavaScript для Safari

if (window.safari) {
    history.pushState(null, null, location.href);
    window.onpopstate = function(event) {
        history.go(1);
    };
}

Со временем Safari будет реализовывать overcroll-behavior-x, и мы сможем удалить JS-хак