PHP JSON_ENCODE进程由ESCAPE键中止

时间:2018-01-29 14:32:23

标签: javascript php jquery twitter-bootstrap jsonencoder

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

1 个答案:

答案 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键会阻止浏览器加载页面。因此页面崩溃,我不知道这个答案是否会对你有所帮助。如果它没有评论的意思,我将删除它。希望我能帮忙。