按下浏览器停止按钮或 ESC 时停止 JS

Stop JS when browser stop button or ESC is pressed

所以我有这个页面,它加载了一个带有外部内容(不同域)的 iframe。 现在以下脚本部分在 iframe 加载 5 秒后加载另一个 JS 函数:

document.getElementById('" . $hash . "').onload = function() {
window.setTimeout('kernelInit(\'" . $hash . "\')', 5000);
     if ($(this).height() == 0) {
     window.location = 'stop.html';
     }
     if ($(this).width() == 0) {
     window.location = 'stop.html';
     }
};

到目前为止一切都很好。但是,用户可以单击浏览器停止按钮或按 ESC 键,从而阻止 iframe 内容完全加载或完全加载。所以上面的 JS 检查变得毫无用处,因为它根本无法检查 iframe 内容是否已加载,也无法检查用户是否手动停止了加载。

我知道一定有解决办法。也许每隔 X 毫秒创建然后检查用户和服务器之间的连接?理论上,如果取消(通过浏览器停止按钮或 ESC 键)应该取消任何 javascript 的进一步加载。 如果导航停止或取消,这里的目标是不完成上述脚本。

有什么指点吗? 谢谢

为 Esc 选项尝试类似的操作

$(document).keyup(function(e) {
     if (e.keyCode == 27) { 
        alert("Esc was pressed")
    }
});

对于浏览器的取消按钮我不知道该怎么做。 将警报更改为您要执行的事件。

https://jsfiddle.net/aLot1mky/