所以我有这个页面,它加载带有外部内容(不同域)的 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")
}
});
对于浏览器的取消按钮我不知道该怎么做。 将警报更改为您想要执行的事件。
关于javascript - 当按下浏览器停止按钮或 ESC 时停止 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961754/