document.addEventListener('touchstart', function() { return false; }, true); var as = 'pop-in'; function plusReady() { plus.webview.currentWebview().setStyle({ scrollIndicator: 'none' }); plus.key.addEventListener('backbutton', eventBackButton, false); } function eventBackButton() { if (confirm('确认退出?')) { plus.runtime.quit(); } } if (window.plus) { plusReady(); } else { document.addEventListener('plusready', plusReady, false); }这样写进项目里面,安卓上测试点击弹框的取消按钮以后,APP还是退出了,但是hello h5+却不会退出,是不是我没有屏蔽安卓的退出默认事件呢?还是其他?
答:这是很基本的事件处理问题了,在 JS 中,addEventListener() 只会增加新的执行程序,并不会覆盖原有的。 H5Plus 的 DEMO 里人家这么写是人家没引用 mui.js。你的项目里用了 MUI,它已经监听过一次 backbutton 事件了,你这么写并不能覆盖原有的事件。 如果要自定义返回逻辑,需要重写 mui.back,而不是通过 addEventListener() 添加 backbutton 事件的监听。