javascript - 除了 onunload 事件之外,检测用户是否正在关闭 IE 浏览器,因为它是在用户刷新等时触发的

标签 javascript

<分区>

在过去 5 天浏览了网上的众多论坛之后,我仍然无法完全追踪浏览器关闭事件。我的要求是在用户尝试关闭浏览器时生成弹出消息。

我在 body 'onbeforeunload' 事件上调用了我的 javascript 函数。我已经硬编码了条件来检查浏览器、刷新、文件关闭或 Alt-F4 的红色“X”按钮的鼠标坐标。

我的代码在浏览器窗口最大化时工作正常,但如果我们在限制后缩小它就会失败。如果有人已经找到类似问题的解决方案,请帮助我。

谢谢。

OP 的汇总响应

------

好的,请告诉我是否可以检测用户是否单击了浏览器的刷新按钮。此外,刷新可以通过右键单击 - 刷新或 Ctrl-R 触发。我的要求是在刷新时使变量为 false。我只能在 F5 上完成,但所有其他方式仍然无法实现。这同样适用于后退按钮。


您好,至少感谢所有回复的人。我已经和我的前辈谈过这件事,他们现在已经理解并妥协了浏览器菜单按钮。所以现在我的任务变得简单了。现在,我正在使用一个变量并使其默认为真。如前所述,我只需要捕获 onbeforeunload 并在用户尝试离开时弹出一条消息。当用户导航到其他页面时,该消息不会弹出,因为我使用以下代码在我页面的所有链接上将变量设置为 false:

document.onclick = function() {
    //To check if user is navigating from the page by clicking on a hyperlink.
    if (event.srcElement.tagName == 'A')
        blnShowMsg = false; //To not popup the warning message
    else
        blnShowMsg = true; //To popup the warning message
}

在我的例子中,当用户刷新、返回或转到收藏夹中的任何链接等时,仍然会显示消息。


谢谢伙计,但我已经经历过了,也没有找到太多帮助。我的前辈们对该解决方案不满意,因为在我的应用程序的每个链接上放置一个标志是一项复杂的工作,他们担心破坏应用程序。任何其他建议将不胜感激。再次感谢。


这里就没有人能想到解决办法吗!!!专家都在哪里???

最佳答案

这个问题并不罕见。然而,在互联网上搜索了 5 天后,您仍然没有找到满意的答案。这本身应该是一个相当简单的指标。

我在网上发现,人们对“不行”的回答深恶痛绝。当无法完成某些事情时,正常的 react 是不做任何反应。

底线不仅是你正在尝试的事情不能做,而且不应该做。

我认为您需要回到您的前辈那里,向他们解释 Web UI 是由客户端计算机上的浏览器托管的 guest 。此客人身份很重要。

您是否希望家里的客人有权强制您在想上厕所时提醒他们?没有?

同样,浏览器会限制访客 UI 可以访问的信息。即使您找到了解决浏览器不会自愿放弃此信息这一事实的解决方法,这种巧妙的黑客攻击也很脆弱,并且可能成为错误的源头。

由于应用程序很可能最初打算在任何代码被剪切之前通过浏览器交付,所以错误在于首先包含需求。

我们只能对您被要求执行几乎不可能且肯定不明智的要求表示同情。

关于javascript - 除了 onunload 事件之外,检测用户是否正在关闭 IE 浏览器,因为它是在用户刷新等时触发的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181189/

相关文章:

javascript - 如何将统一渐变应用于 (particule.js) Canvas ?

javascript - 如何计算 JSON 数组元素的长度

javascript - 无法调整标签宽度。查询

javascript - 使我的 js 代码适应输入

javascript - Gmail 中会弹出通知吗?

javascript - openlayers - 我如何旋转图像层

javascript - 无法在 Javascript 中询问对象属性两次

javascript - IE 10 不支持 dragover 和 drop 事件

javascript - 没有从第二个 onchange 调用复选框回调函数

javascript - 同时滚动屏幕上嵌入的两个 PDF,但通过触摸分别滚动