‘壹’ 如何监听物理按键函数,例如安卓的返回键
假 A----->B现要返A B页面加载mui.min.js文件或者重写返键
var old_back = mui.back;
mui.back = function(){
old_back();
}
面使用mui 框架使用纯粹使用H5+看面文档
‘贰’ js怎么监听安卓返回键
<script>
// =========================PhoneGap==================================
// 等待加载PhoneGap
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap加载完毕
function onDeviceReady() {
// 按钮事件
document.addEventListener("backbutton", eventBackButton, false); // 返回键
}
// 返回键
function eventBackButton() {
if($(".classobj").is(":visible")){
alert('再点击一次退出!');
document.removeEventListener("backbutton", eventBackButton, false); // 注销返回键
document.addEventListener("backbutton", exitApp, false);//绑定退出事件
// 3秒后重新注册
var intervalID = window.setInterval(function() {
window.clearInterval(intervalID);
document.removeEventListener("backbutton", exitApp, false); // 注销返回键
document.addEventListener("backbutton", eventBackButton, false); // 返回键
}, 3000);
}else {
//navigator.app.backHistory();
}
}
function exitApp(){
navigator.app.exitApp();
}
</script>
‘叁’ history.pushstate;什么意思
你要问的应该是浏览器的history,也就是历史记录;我们都知道在页面中我们可以使用javascriptwindowhistory,后退到上一页面,但是出于安全考虑,javascripthistory不允许修改history里已有的url链接(也就是历史记录里面的页面地址),但可以使用pushState(相当于进栈意思)方法往history里增加url链接,并且提供popState事件(相当于出栈)监听从history栈里弹出url,所以我们就可以监听popState事件,进行相应操作,如下:
语法:element.addEventListener(event,function,useCapture);
参数:
element:文档节点、document、window或XMLHttpRequest
event:事件类型,如"click"或"mousedown"
function:事件触发后调用的函数或者是实现了EventListener接口
useCapture:布尔值,用于描述事件是冒泡还是捕获,参数可选,默认false(冒泡)
注意:event不要使用"on"前缀。例如,使用"click",而不是使用"onclick"
事件冒泡还是捕获?
事件传递方式有两种:冒泡、捕获、
事件传递定义了元素触发的顺序,如果你将<p>元素插入到<div>元素中,用户点击<p>元素,哪个元素的"click"事件先被触发呢?
在冒泡中,内部元素的事件会先被触发,然后再触发外部元素,即:<p>元素的点击事件先触发,然后会触发<div>元素的点击事件。
在捕获中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即:<div>元素的点击事件先触发,然后再触发<p>元素的点击事件。
addEventListener()方法可以指定"useCapture"参数来设置传递类型:
addEventListener(event,function,useCapture);
默认值为false,即冒泡传递,当值为true时,事件使用捕获传递。
示例:手机端监听物理返回键
pushHistory();
functionpushHistory(){
varstate={
title:"title",//可以给null值
url:"#"//可以给null值
};
window.history.pushState(state,"title","#");
}
//监听到popState事件要执行的操作
window.addEventListener("popstate",function(e){
//该干嘛干嘛
},false);//false表示冒泡
以上是个人见解,看下能不能帮得上