js 监听浏览器的返回按钮事件在安卓和ios的坑

JavaScript012

js 监听浏览器的返回按钮事件在安卓和ios的坑,第1张

这是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无效...

<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>