‘壹’ js 监听浏览器的返回按钮事件在安卓和ios的坑
这是ajax的一个经典问题,很多框架都提供了解决方案,重点是模拟浏览器的前进后退。
对于IE,可以用一个隐藏框架,对框架内容的导航会使得前进后退按钮被触发。
对以FF,可以用Hash,即改变http://www.url.com/#abc井号后面的部分,前进后退按钮同样被触发。
这样就能既让浏览器前进后退按钮被触发,同时又不离开本页面。具体方法如下:
1.resize事件 (window).resize(function() { var width = (this).width(); var height = (this).height(); });
2.js条用这个方法 function closewindow{ history.go(-1); }
3.<input type="button" value="后退" onClick="history.back();"> 或 <input type="button" value="后退" onClick="history.go(-1);">
4.window.location.replace Location对象的replace()方法将用指定的URL替换浏览器历史列表中的当前URL,而不是在历史列表中创建一个新的项,因此,就不能使用IE的后退按钮来返回原始文档了。 2.window.open(FF无效...
‘贰’ 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表示冒泡
以上是个人见解,看下能不能帮得上
‘叁’ js怎么监听移动端键盘展开事件
目的 : 监听移动端键盘展开事件
工具 : 移动端, js
思路 : 可以通过监听窗口大小的改变来实现,当端键盘展开时,窗口的大小发生改变,依据此基础进行判断.
js 移动端关于页面布局,如果底部有position:fixed的盒子,又有input,当软键盘弹出收起都会影响页面布局。这时候Android可以监听resize事件,代码如下,而iOS没有相关事件。
方法一实现代码:
//获取当前页面高度
varwinHeight=$(window).height();
$(window).resize(function(){
varthisHeight=$(this).height();
if(winHeight-thisHeight>50){
//窗口发生改变(大),故此时键盘弹出
//当软键盘弹出,在这里面操作
}else{
//窗口发生改变(小),故此时键盘收起
//当软键盘收起,在此处操作
}
});
方法二:监控键盘
监控的方式其实筛选下来也不过两种:
① 时钟setInterval不停监控
② 系统级别的监控,比如键盘出现时候通知window一个事件,但是很遗憾现在还没有这个事件,但是这个事件等于
input类元素获取焦点 == 弹出虚拟键盘
input类元素失去焦点 == 收起虚拟键盘
但是我们前面已经说过,上面的原则不一定可靠,所以该种方案也未必可靠了
基于系统监控这点,我们还可以监控resize事件或者scroll事件,但是经过我的测试,setInterval表现比较好.于是,我们简单写一段代码,可靠是否满足需求:
window.alert=function(msg){
$('body').append('<div>'+msg+'</div>')
};
functionfixedWatch(el){
if(document.activeElement.nodeName=='INPUT'){
el.css('position','static');
}else{
el.css('position','fixed');
}
}
setInterval(function(){
fixedWatch($('#headerviewheader'));
},500);
如上:移动端键盘展开事件即可被监听.
‘肆’ js怎么监听安卓返回键
代码如下:
<script>
//=========================PhoneGap==================================
//等待加载PhoneGap
document.addEventListener("deviceready",onDeviceReady,false);
//PhoneGap加载完毕
functiononDeviceReady(){
//按钮事件
document.addEventListener("backbutton",eventBackButton,false);//返回键
}
//返回键
functioneventBackButton(){
if($(".classobj").is(":visible")){
alert('再点击一次退出!');
document.removeEventListener("backbutton",eventBackButton,false);//注销返回键
document.addEventListener("backbutton",exitApp,false);//绑定退出事件
//3秒后重新注册
varintervalID=window.setInterval(function(){
window.clearInterval(intervalID);
document.removeEventListener("backbutton",exitApp,false);//注销返回键
document.addEventListener("backbutton",eventBackButton,false);//返回键
},3000);
}else{
//navigator.app.backHistory();
}
}
functionexitApp(){
navigator.app.exitApp();
}
</script>
‘伍’ 如何用js代码 控制苹果系统中的返回键
开启方式如下; 1.在桌面找到【设置】点击进入。 2.点击【通用】选项。 3.进入点击【辅助功能】。 4.点击【AssistiveTouch】进入。 5.把【AssistiveTouch】开关打开。 6.然后就可以看到屏幕右下方有个小白点,点击一下就出现虚拟菜单了。
‘陆’ js获取安卓手机上的回退键的事件....
很简单, webView 肯定是要放到一个 activity 中。 你 重写 activity 的onkeyup 事件屏蔽掉 回退按钮的事件就可以了。 欢迎采纳
‘柒’ Android webview中的js如何监听键盘事件
首先,设置webView属性:
如此,webView中就可以捕获javascript的alert()、confirm()事件了。
‘捌’ 如何监听物理按键函数,例如安卓的返回键
假 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>