Javascript 单击浏览器后退按钮时触发事件
我试图在单击浏览器后退按钮时运行一些代码 如何在不更改浏览器历史记录的情况下找到浏览器的“后退”按钮 我尝试了下面的代码。 我在Javascript 单击浏览器后退按钮时触发事件,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我试图在单击浏览器后退按钮时运行一些代码 如何在不更改浏览器历史记录的情况下找到浏览器的“后退”按钮 我尝试了下面的代码。 我在else块中得到一个异常,它说:“未定义事件” window.onunload=HandleBackFunctionality(); 函数HandleBackFunctionality() { if(window.event) { if(window.event.clientX
else
块中得到一个异常,它说:“未定义事件”
window.onunload=HandleBackFunctionality();
函数HandleBackFunctionality()
{
if(window.event)
{
if(window.event.clientX<40&&window.event.clientY<0)
{
警报(“单击浏览器后退按钮…”);
}否则{
警报(“单击浏览器刷新按钮…”);
}
}否则{
if(event.currentTarget.performance.navigation.type==1)
{
警报(“单击浏览器刷新按钮…”);
}
if(event.currentTarget.performance.navigation.type==2)
{
警报(“单击浏览器后退按钮…”);
}
}
}
好的。除了您不应该首先触发事件和.unload=FunctionName
而不是.unload=FunctionName()
以及您需要传递事件
参数之外,我还在浏览器中检查了代码
currentTarget
为空-这完全有道理,因为没有像onclick这样的事件目标,但它只是站点重新加载/卸载
请使用此选项自行调试代码,并使其适合您的需要:
window.onunload=车把靠背功能
function HandleBackFunctionality(event)
{
console.log(event, window.event);
}
您将看到未设置currentTarget(而事件已设置)。使用
$(window).on("navigate", function (event, data) {
var direction = data.state.direction;
if (direction == 'back') {
// do something
}
if (direction == 'forward') {
// do something else
}
});
这是IOS safari唯一适合我的解决方案
<script>
window.addEventListener( "pageshow", function ( event ) {
var pagehistory = event.persisted ||
( typeof window.performance != "undefined" &&
window.performance.navigation.type === 2 );
if ( pagehistory ) {
// back button event - Do whatever.
}
});
</script>
window.addEventListener(“页面显示”,函数(事件){
var pagehistory=event.persistend |
(typeof window.performance!=“未定义”&&
window.performance.navigation.type==2);
如果(页面历史记录){
//后退按钮事件-做任何事情。
}
});
对不起,有一半的问题。。。。。下面是不更改浏览器历史记录的扩展(我的项目需要浏览器历史记录作为摘要)。您好,感谢您的回复。window.onunload=车把靠背功能;window.onunload();我在标题部分这样写。。。尽管我得到了和你说的一样的例外,但currentTarget是空的。。。。如何找到浏览器后退按钮。。。我已经尝试了很多方法没有用…嗨,谢谢你的快速回复。。。。在我添加JqueryMobile.js文件之后,您的代码运行良好。是否可以不添加JqueryMobile.js文件,只添加jquery.1.11.1.js文件…它需要在这里进行JqueryMobile检查。包括它时有什么问题吗?它还是小js,一点也不重。在我添加jquerymobile.js之后,一些类添加到了我的html页面。我的总视图被打乱了。这就是为什么我会问…@user3915009一些类被添加了,好吗?只要你不使用jquerymobile CSS,样式就不会添加到你的html中。检查添加了哪些类。哪些类提供了CSS。因此,在你的原生html中,使用其他类,如sampleClass
tosampleClass1
这样,并在CSS中使用这些类,如sampleClass1{ADD\u HERE\u Styleing}