-2

我的网页使用 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 = {};
4

1 回答 1

1

我得到了使用以下代码控制“F5、Esc、BackSpace(BS)”键的解决方案。

我的 Java Script 代码将是,

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 键阻止浏览器加载页面。因此页面崩溃,我不知道这个答案是否对您有帮助。如果不方便发表评论,我会删除它。希望我有所帮助。

于 2018-01-29T14:46:10.170 回答