对于某些网页,我们使用iPhone的左右滑动功能来拉取菜单。 现在使用iOS7,他们已经推出了在左右滑动的情况下返回到前一页和下一页浏览器历史记录的功能。
但是有没有办法为特定页面禁用它,以便在滑动操作上没有冲突的行为?
答案 0 :(得分:15)
不,这是在操作系统级别完成的,网页没有得到任何回调
请参阅this summary of safari changes in iOS7 that might cause problems to your website(包括此滑动手势)
答案 1 :(得分:12)
您无法直接禁用它,但只有在浏览器历史记录中有内容时才会进行原生刷卡。
它不会在每种情况下都有效,但如果您在新标签页中打开了单页网页应用,则可以使用
阻止其添加到历史记录中window.history.replaceState(null, null, "#" + url)
而不是pushState或
document.location.hash = url
答案 2 :(得分:4)
我不得不使用两种方法:
1)CSS仅修复Chrome / Firefox
html, body {
overscroll-behavior-x: none;
}
2)Safari修补程序
if (window.safari) {
history.pushState(null, null, location.href);
window.onpopstate = function(event) {
history.go(1);
};
}
随着时间的推移,Safari将实施overscroll-behavior-x,我们将能够删除JS hack