Javascript 区分F5或Open for Browser
是否可以区分浏览器的F5或Open(单击链接,将URL粘贴到空页或新选项卡中,等等) 为什么??因为我想改进用户界面的人机工程学。在我的应用程序中,一些昂贵的计算用于呈现页面。所以页面被缓存,页面上有额外的按钮“重新计算” 当有完全相同的标准“F5”按钮时,我不喜欢有额外的“重新计算”按钮 我同时控制服务器和客户端JS,是否有任何方法可以通知“F5”事件Javascript 区分F5或Open for Browser,javascript,browser,Javascript,Browser,是否可以区分浏览器的F5或Open(单击链接,将URL粘贴到空页或新选项卡中,等等) 为什么??因为我想改进用户界面的人机工程学。在我的应用程序中,一些昂贵的计算用于呈现页面。所以页面被缓存,页面上有额外的按钮“重新计算” 当有完全相同的标准“F5”按钮时,我不喜欢有额外的“重新计算”按钮 我同时控制服务器和客户端JS,是否有任何方法可以通知“F5”事件 重要的是要检测所有“F5”事件,不要错过它。但有时(有时但不经常)有额外的假“F5”事件是可以的-当打开的页面被错误地检测为“F5”时。查看键
重要的是要检测所有“F5”事件,不要错过它。但有时(有时但不经常)有额外的假“F5”事件是可以的-当打开的页面被错误地检测为“F5”时。查看
键下
javascript事件:
然后,您可以使用其键
属性检查F5,并使用事件阻止浏览器的重新加载。preventDefault
document.body.addEventListener("keydown", function(event) {
if (event.key == "F5") {
console.log("F5 Pressed!");
//do your stuff here
event.preventDefault();
}
});
Fiddle:查看
按键下的javascript事件:
然后,您可以使用其键
属性检查F5,并使用事件阻止浏览器的重新加载。preventDefault
document.body.addEventListener("keydown", function(event) {
if (event.key == "F5") {
console.log("F5 Pressed!");
//do your stuff here
event.preventDefault();
}
});
Fiddle:查看按键下的javascript事件:
然后,您可以使用其键
属性检查F5,并使用事件阻止浏览器的重新加载。preventDefault
document.body.addEventListener("keydown", function(event) {
if (event.key == "F5") {
console.log("F5 Pressed!");
//do your stuff here
event.preventDefault();
}
});
Fiddle:查看按键下的javascript事件:
然后,您可以使用其键
属性检查F5,并使用事件阻止浏览器的重新加载。preventDefault
document.body.addEventListener("keydown", function(event) {
if (event.key == "F5") {
console.log("F5 Pressed!");
//do your stuff here
event.preventDefault();
}
});
小提琴:在您的情况下,使用sessionStorage
听起来是最好的选择
比如:
var calculatedValues = (function() {
var savedValues = sessionStorage.getItem("values");
if (!savedValues) {
// Do calculations
var values = {
result: 10
};
savedValues = JSON.stringify(values);
sessionStorage.setItem("values", savedValues);
}
return JSON.parse(savedValues);
}());
sessionStorage
对于每个窗口都应该是唯一的——转到不同窗口下的页面将看不到任何值并重新计算,但按F5
不会
在链接上使用“在新选项卡中打开”时,某些浏览器会将会话值从一个窗口复制到另一个窗口,但在这种情况下,这似乎不是问题。在您的情况下,使用“会话存储”听起来是最好的选择
比如:
var calculatedValues = (function() {
var savedValues = sessionStorage.getItem("values");
if (!savedValues) {
// Do calculations
var values = {
result: 10
};
savedValues = JSON.stringify(values);
sessionStorage.setItem("values", savedValues);
}
return JSON.parse(savedValues);
}());
sessionStorage
对于每个窗口都应该是唯一的——转到不同窗口下的页面将看不到任何值并重新计算,但按F5
不会
在链接上使用“在新选项卡中打开”时,某些浏览器会将会话值从一个窗口复制到另一个窗口,但在这种情况下,这似乎不是问题。在您的情况下,使用“会话存储”听起来是最好的选择
比如:
var calculatedValues = (function() {
var savedValues = sessionStorage.getItem("values");
if (!savedValues) {
// Do calculations
var values = {
result: 10
};
savedValues = JSON.stringify(values);
sessionStorage.setItem("values", savedValues);
}
return JSON.parse(savedValues);
}());
sessionStorage
对于每个窗口都应该是唯一的——转到不同窗口下的页面将看不到任何值并重新计算,但按F5
不会
在链接上使用“在新选项卡中打开”时,某些浏览器会将会话值从一个窗口复制到另一个窗口,但在这种情况下,这似乎不是问题。在您的情况下,使用“会话存储”听起来是最好的选择
比如:
var calculatedValues = (function() {
var savedValues = sessionStorage.getItem("values");
if (!savedValues) {
// Do calculations
var values = {
result: 10
};
savedValues = JSON.stringify(values);
sessionStorage.setItem("values", savedValues);
}
return JSON.parse(savedValues);
}());
sessionStorage
对于每个窗口都应该是唯一的——转到不同窗口下的页面将看不到任何值并重新计算,但按F5
不会
在链接上使用“在新选项卡中打开”时,某些浏览器会将会话值从一个窗口复制到另一个窗口,但在这种情况下,这听起来似乎不是问题。OP不是询问如何停止F5
——只是检测它。感谢回复,但是,似乎可以单击“F5”按钮,但它不会被检测到。OP不是问如何停止F5
——只是检测它。感谢回复,但似乎可以单击“F5”按钮,但它不会被检测到。OP不是问如何停止F5
——只是检测它。感谢回复,但是,似乎可以单击“F5”按钮而不会被检测到。OP不是询问如何停止F5
——只是检测它。感谢您的回复,但似乎可以单击“F5”按钮而不会被检测到。