【问题标题】:show a message box when user close IE用户关闭 IE 时显示消息框
【发布时间】:2009-02-19 21:56:35
【问题描述】:

当用户关闭 IE 时,是否有任何 javascript 来提示消息框?找了好久的代码示例,都失败了。

提前致谢, 乔治

这是我的 html 代码,但它有以下错误。有什么想法吗?

为帮助保护您的安全,Internet Explorer 已限制此网页运行可能访问您计算机的脚本或 ActiveX 控件。点击这里查看选项...

【问题讨论】:

    标签: javascript internet-explorer events


    【解决方案1】:

    您正在寻找beforeunload 事件。

    例如:

    function someCloseEvent() {
      return "Any string value here forces a dialog box to \n" +
             "appear before closing the window.";
    }
    
    window.onbeforeunload = someCloseEvent;
    

    【讨论】:

    • 我使用了您的代码,但出现以下安全错误,有什么想法吗?为了帮助保护您的安全,Internet Explorer 已限制此网页运行可能访问您计算机的脚本或 ActiveX 控件。单击此处查看选项...(我发布了有问题的 html 代码。)
    • 我的代码。 关闭我!
    • @George2:您正在从本地计算机运行文件。作为一种安全措施,浏览器不会在本地文件上执行脚本。要么将 localhost 添加到可信环,要么将文件放在服务器上。
    【解决方案2】:

    【讨论】:

    • 我试过你的代码,但是有一个安全警告。有什么想法可以删除它吗?为了帮助保护您的安全,Internet Explorer 已限制此网页运行可能访问您计算机的脚本或 ActiveX 控件。单击此处查看选项...
    • 如果你使用 localhost-testing,这是很常见的事情,只需激活它;-)
    • 我明白了。我在另一台 IIS 服务器上测试过,你是对的。任何想法为什么在本地主机测试中会出现这样的错误?本地主机应该比远程 IIS 服务器更可信。
    • 大声笑,这实际上不是一个“错误”,它是与 Internet Explorer 相关的问题之一。我很确定你可以在某个地方告诉 Ie 信任 localhost,或者尝试单击它并启用 activeX 组件 - 之后它可能会工作
    • 我很困惑为什么提到我正在执行 ActiveX 组件?我只是在执行一些 javascript。 :-)
    【解决方案3】:

    刷新期间您也会收到卸载消息。 最好在卸载前检查 clientx 和 clientY。这是一个伪代码...

    <script type="text/javascript">
    
        var myclose = false;
    
        function ConfirmClose()
        {
            if (event.clientY < 0)
            {
                event.returnValue = 'Any message you want';
    
                setTimeout('myclose=false',100);
                myclose=true;
            }
        }
    
        function HandleOnClose()
        {
            if (myclose==true) alert("Window is closed");
        }
    </script> onbeforeunload="ConfirmClose()" onunload="HandleOnClose()"
    

    【讨论】:

    • 我试过你的代码,但是有一个安全警告。有什么想法可以删除它吗?为了帮助保护您的安全,Internet Explorer 已限制此网页运行可能访问您计算机的脚本或 ActiveX 控件。单击此处查看选项...
    • 这是 IE 的特定行为。您可能需要将“受信任的站点”添加为您的站点,或者可能会降低安全级别以允许脚本在浏览器中运行。
    【解决方案4】:

    顺便说一句,我会认真考虑您是否要这样做。当我关闭窗口时,我已经完成了您的网站,我不想再收到您的任何消息。弹出一个额外的窗口会惹恼很多人。

    【讨论】:

    • 在显示此消息时,我正在处理一些重要信息,以确保用户不会错误地单击关闭按钮。 :-)
    • 在本地测试时,有这样的安全警告,但在远程IIS服务器上是可以的。有什么想法可以删除它吗?为了帮助保护您的安全,Internet Explorer 已限制此网页运行可能访问您计算机的脚本或 ActiveX 控件。单击此处查看选项...
    • 在您的本地环境(例如 localhost 或类似环境)上,IE 会将该栏放在任何页面上。如果您添加“MOTW”标记的 Web,IE 将停止胡闹。如您所述,在 Intranet 或 Internet 上都可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多