我的网页使用bootstrap和jquery,并且在相当长的页面加载期间,使用JSON_ENCODE读取一些PHP会话变量,按ESCAPE键似乎停止进程,中止读取,并导致页面加载失败。
Chrome和Firefox都会出现这种情况。
导致这种情况的原因是什么,有什么方法可以阻止这种情况吗?
谢谢。
编辑*(添加 ignore_user_abort 但ESCAPE仍然中止):
<?php ignore_user_abort(true); ?>
var db = <?php echo (isset($_SESSION["data"])) ?
json_encode($_SESSION["data"], JSON_PRETTY_PRINT) : 0 ; ?>;
if (!db) db = {};
答案 0 :(得分:1)
我得到了使用以下代码控制“F5,Esc,BackSpace(BS)”键的解决方案。
我的Java脚本代码将是,
document.attachEvent("onkeydown", win_onkeydown_handler);
function win_onkeydown_handler() {
switch (event.keyCode) {
case 116 : // 'F5'
event.returnValue = false;
event.keyCode = 0;
break;
case 27: // 'Esc'
event.returnValue = false;
event.keyCode = 0;
break;
case 08: // 'BackSpace'
if (event.srcElement.tagName == "INPUT"
|| event.srcElement.tagName == "TEXTAREA") {
} else {
event.returnValue = false;
event.keyCode = 0;
}
break;
}
}
感谢所有人支持我这样做以及您的建议。
https://stackoverflow.com/a/14603299/8939708
问题是ESC键会阻止浏览器加载页面。因此页面崩溃,我不知道这个答案是否会对你有所帮助。如果它没有评论的意思,我将删除它。希望我能帮忙。