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

标签 javascript iframe cross-browser

所以我有这个页面,它加载带有外部内容(不同域)的 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/

关于javascript - 当按下浏览器停止按钮或 ESC 时停止 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961754/

相关文章:

javascript - 跨浏览器功能标识

javascript - 检查元素的任何部分是否在副本内

javascript - Protractor browser.wait 导致 Angular 超时

javascript - 3秒后重定向至主页

javascript - 使链接在新页面上的 iframe 中加载内容

css - 用于 ie7-8 的 Rem 回退

javascript - 通知 div - 下拉关闭

javascript - 如何阻止我的网站被别人陷害?

html - 通过 Chrome 中的 iframe 访问时,Youtube 插入的视频不显示全屏按钮

javascript - 我如何确定相对较新版本的 IE 的高度和宽度(IE8 不喜欢从 JavaScript 设置这种样式的原因是什么?)