如果用户点击后退按钮,我正在尝试检测并更改浏览器行为。
这是否可以通过Javascript实现?
答案 0 :(得分:4)
哇,我刚刚通过阅读本教程的javascript学到了很多东西。 它谈到了以下几点:
使用Javascript掌握后退按钮
讲述了如何锁定历史。您可以进行有限的更改。但是你可以放置一个替换URL,这样如果一个人决定返回它会将它重定向到另一个页面。出于安全原因,如果一个人登录然后退出,而另一个人按下后退按钮,该页面将被带到替换页面。
检查出来 它非常简短,精确,内容丰富的文章/教程,包含许多java片段,可以帮助您完成每个部分。
http://www.hunlock.com/blogs/Mastering_The_Back_Button_With_Javascript
我希望这会有所帮助。
<强> PK 强>
答案 1 :(得分:1)
我刚刚问了同样的问题,因为这是你的副本而被关闭了。这是我的解决方案的本质:
表单字段会自动从浏览器的缓存中提取,从而保存历史数据。虽然这是真的,但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;
}
答案 2 :(得分:0)
只能在html页面中实现“Back”的链接,然后在那里添加你的JS函数。但是,不可能在JS中检测用户正在使用浏览器做什么(例如单击浏览器后退按钮),因为它发生在加载页面的上下文之外,并且没有标准规范来为Web服务器提供数据来自浏览器GUI。您可以尝试开发一个自定义插件,以便在浏览器上运行并向www服务器提供数据,但同样,这是一个非标准的解决方案,并非所有用户都可以非常轻松地安装某些第三方插件。
希望这有帮助。