我想创建一个页面(在这种情况下是view
),如果按下退格键,它将显示错误。
这是我对退格键的尝试:
<script type ="text/javascript">
$(document).ready(function (event) {
if (event.keycode == 8) {
alert("Don't go back");
window.history.back(0);
}
});
</script>
它不起作用,
另外,我想抓住浏览器后退按钮,以便我可以禁用返回页面。
任何替代方案都会被接受,因为它会节省我的一天。
提前致谢。
答案 0 :(得分:1)
您通常无法(浏览器安全限制)。您可以判断用户是否离开了页面(onbeforeunload,onunload fire),但除非您已将页面设置为允许,否则无法告诉他们去哪里。
HTML5引入了HTML5 History API;在符合浏览器的情况下,onpopstate事件将在用户导航回更早的&#34;页面时触发。在您的网站上。
Protected Overrides Sub WndProc(ByRef message As Message)
If message.Msg = &H84 Then 'WM_NCHITTEST
message.Result = CType(1, IntPtr)
Return
End If
MyBase.WndProc(message)
End Sub
答案 1 :(得分:0)
将其绑定在关键事件
中 $(document).unbind('keydown').bind('keydown', function (event) {
var doPrevent = false;
if (event.keyCode === 8) {
var d = event.srcElement || event.target;
if ((d.tagName.toUpperCase() === 'INPUT' &&
(
d.type.toUpperCase() === 'TEXT' ||
d.type.toUpperCase() === 'PASSWORD' ||
d.type.toUpperCase() === 'FILE' ||
d.type.toUpperCase() === 'SEARCH' ||
d.type.toUpperCase() === 'EMAIL' ||
d.type.toUpperCase() === 'NUMBER' ||
d.type.toUpperCase() === 'DATE' )
) ||
d.tagName.toUpperCase() === 'TEXTAREA') {
doPrevent = d.readOnly || d.disabled;
}
else {
doPrevent = true;
}
}
if (doPrevent) {
event.preventDefault();
}
});