我有一个简单的网页,它长这样:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>History hacks</title>
<script>
window.onpopstate = function (e) {
alert("location: " + document.location + ", state: " + JSON.stringify(e.state));
}
window.onload = function (e) {
alert('page loaded');
}
</script>
</head>
<body>
<p> <a href="http://www.yahoo.com">Yahoo</a> <a href="#part1">Part 1</a></p>
</body>
</html>
现在,Chrome和Firefox触发
popstate
事件的方式有许多不同之处(当我测试IE时,我不敢想象我要面对什么),但其中一个问题让我很烦恼,即Chrome会在我单击这两个链接中的任何一个时触发popstate
事件,然后再次在我点击“返回”按钮时触发。Firefox仅会为更改哈希部分的链接触发事件(如果哈希链接相同,则仅在第一次执行此操作),如果我单击Yahoo链接然后单击“返回”按钮,则根本不会触发该事件。
因此,在Firefox中,是否有一种方法可以告诉我用户刚刚单击了“返回”按钮并从完全不同的站点和不同的域名着陆回我的页面?是否有另一种事件可用于此目的在Firefox中?(当我从yahoo.com返回时,加载事件也不会被触发。)