admin管理员组

文章数量:1538797

在开发过程中,发现我们公司所使用的APP有点BUG,在APP中打开网页、H5应用之后,处于首页时,轻微的右划触发了后退事件,导致直接退出网页或者H5应用的页面,这样使得很多需要交互的手势没办法使用。本来这个右划后退事件是不应该出现在第一页的,这个BUG也应该由APP得开发来解决,不过当时这个APP是外包做的,如果更改这些比较麻烦,因此解决问题的任务就由我来了。

在使用某些JS插件(fullpage、swipe等)的时候,我发现这些插件使用过程中居然屏蔽掉了这个事件,这也给了我信心,于是我开始了尝试。

方法一:

var mo=function(e){e.preventDefault();}

/***禁止滑动***/

function stop(){

document.addEventListener("touchmove",mo,false);//禁止页面滑动

}

stop()

这个方法最简单最暴力,适用于单页面的简单应用。

方法二:

直接屏蔽掉浏览器的后退事件。

//防止页面后退

history.pushState(null, null, document.URL);

window.addEventListener('popstate', function () {

history.pushState(null, null, document.URL);

});

这页面中引入这段JS后,一切后退事件都会失效,包括APP顶部自带的那个后退按钮,因此需要慎用。

本文标签: 浏览器几种方法历史js