可能重复:
Can you detect/redirect a back button press through javascript?
我正在开发一个小型Web应用程序。在我的应用程序中,我必须知道用户何时单击"返回"按钮,所以我可以运行一些JavaScript代码。有没有这样的方法来检测它?
谢谢
答案 0 :(得分:1)
好的,所以我发现JS API无法在没有提升权限的情况下访问历史对象的下一个属性,这让我想到了另一个方向。
表单字段会自动从浏览器的缓存中提取,从而保存历史数据。虽然这是真的,但javascript代码每次都是独立运行的。
所以我创建了一个小的隐藏字段来保存时间戳并将其与javascript生成的数据时间进行比较。
这是代码,我相信它可以更好地实现,虽然时间很短:
$(document).ready(function () {
var date = new Date();
var clientMiliseconds = date.getTime();
clientMiliseconds = roundTime(clientMiliseconds);
var serverTimeStamp = $('#' + '<%= hfTimeStamp.ClientID %>').val();
serverTimeStamp = roundTime(serverTimeStamp);
alert(serverTimeStamp == clientMiliseconds);
});
function roundTime(time) {
time = Math.floor(time);
//since the server renders the time components a few seconds before the page is downloaded
//which also depends on where you assign the date on the serverside
//we've got a small inaccuracy of few seconds. we neglect these seconds, assuming that it would take the user
//a few seconds to click the back button
time = time / 10000;
time = Math.floor(time);
return time;
}
答案 1 :(得分:0)
你做不到。您可以绑定一个事件,以便当您的用户离开页面时发生某些事情(使用onbeforeunload或unload()来执行此操作)但是无法知道他已经去了哪里