按下浏览器停止按钮或 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")
}
});
对于浏览器的取消按钮我不知道该怎么做。
将警报更改为您要执行的事件。
所以我有这个页面,它加载了一个带有外部内容(不同域)的 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")
}
});
对于浏览器的取消按钮我不知道该怎么做。 将警报更改为您要执行的事件。