window.onbeforeunload 仅在我刷新页面后有效
window.onbeforeunload only works after i refresh the page
注意:我看到这个 Question 但问题不一样。
我有一个名为 login_check.cfm 的页面,此页面执行 location.href 到 home.cfm
在 home.cfm 我有这个代码
<script>
window.onbeforeunload = function() { window.history.go(0); };
</script>
或
<script>
window.onbeforeunload = function() { window.history.forward(1); };
</script>
我的意图是禁止用户使用后退按钮及其工作,但只能进行刷新或使用 link 进行刷新。
问题是我的页面有 90% ajax 是基于用户点击后退按钮时最多返回登录页面。
使用 Document ready() 没有区别。
建议?
我找到了这个旧的 Question where rohit416 give a good answer,它仍然有效
(function ($, global) {
var _hash = "!",
noBackPlease = function () {
global.location.href += "#";
setTimeout(function () {
global.location.href += "!";
}, 50);
};
global.setInterval(function () {
if (global.location.hash != _hash) {
global.location.hash = _hash;
}
}, 100);
global.onload = function () {
noBackPlease();
// disables backspace on page except on input fields and textarea.
$(document.body).keydown(function (e) {
var elm = e.target.nodeName.toLowerCase();
if (e.which == 8 && elm !== 'input' && elm !== 'textarea') {
e.preventDefault();
}
// stopping event bubbling up the DOM tree..
e.stopPropagation();
});
}
})(jQuery, window);
注意:我看到这个 Question 但问题不一样。
我有一个名为 login_check.cfm 的页面,此页面执行 location.href 到 home.cfm
在 home.cfm 我有这个代码
<script>
window.onbeforeunload = function() { window.history.go(0); };
</script>
或
<script>
window.onbeforeunload = function() { window.history.forward(1); };
</script>
我的意图是禁止用户使用后退按钮及其工作,但只能进行刷新或使用 link 进行刷新。 问题是我的页面有 90% ajax 是基于用户点击后退按钮时最多返回登录页面。
使用 Document ready() 没有区别。
建议?
我找到了这个旧的 Question where rohit416 give a good answer,它仍然有效
(function ($, global) {
var _hash = "!",
noBackPlease = function () {
global.location.href += "#";
setTimeout(function () {
global.location.href += "!";
}, 50);
};
global.setInterval(function () {
if (global.location.hash != _hash) {
global.location.hash = _hash;
}
}, 100);
global.onload = function () {
noBackPlease();
// disables backspace on page except on input fields and textarea.
$(document.body).keydown(function (e) {
var elm = e.target.nodeName.toLowerCase();
if (e.which == 8 && elm !== 'input' && elm !== 'textarea') {
e.preventDefault();
}
// stopping event bubbling up the DOM tree..
e.stopPropagation();
});
}
})(jQuery, window);