javascript - 如何控制 IE 中 onbeforeunload 的 Action ?

标签 javascript html internet-explorer

我最近遇到了一个关于onbeforeunload的问题,当用户试图关闭他们的IE浏览器时,我需要弹出一个投票页面。我通过使用:

<body onbeforeunload="makevote()">

而javascript中makevote()的主要结构如下:

function makevote()
{
    comet.distruct();
    if(csid != null && isvote == null)
    {
        window.event.returnValue = false
        window.event.returnValue='press “cancel” to vote please!'
        showComDiv(popvote,"popiframe",400,120,'your vote here','dovote()');
    }

}

在过去的三个月里,这个投票功能表现得非常糟糕,我只从超过 4,50,000 名访问者那里获得了不到 8,000 票。我认为问题在于,当用户尝试关闭浏览器时,onbeforeunload 属性弹出一个确认框覆盖我的投票框,而大多数用户单击 OK 按钮,这意味着关闭确认已完成,作为一种习惯。所以我的问题是如何控制 onbeforeunload 制作的确认框 我自己?例如,如果我单击“确定”,我将转到投票框而不是关闭我的 IE。到目前为止,我能做的只是定义它显示的消息。还有其他更好的方法吗?帮助将不胜感激!

问候

最佳答案

很简单,你不能。

这是内置行为,旨在仅允许出于安全目的进行非常小的更改。每个浏览器都一样; FF、Chrome 等都将以相同的方式运行。

beforeunload 的主要目的是允许用户选择在更改丢失之前保存更改。

此外,如果您的用户要离开,那就太晚了——他们不想再回答调查了,他们完了!

关于javascript - 如何控制 IE 中 onbeforeunload 的 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512991/

相关文章:

javascript - 在简单网页中使用 SharePoint 2013 跨域库 : is it possible?

javascript - 鹅毛笔.js : How to prevent newline entry on Enter to submit the input?

html - 有没有办法让这个ribbon成为纯css的ribbon?又名 : can I just add a ribbon-updated class

Jquery获取子表的宽度

html - 如何让我的嵌入式 YouTube iframe 扩展?

html - Internet Explorer 8 忽略表格上的列组宽度

css - Div 在 Firefox、Safari、Chrome 等中显示,但在 Internet Explorer 中不显示

html - CSS 表格将单元格组合到 IE 11 中的同一列中

javascript - 我的验证不适用于 textarea

JavaScript - 是否可以限制 forEach 循环给出的结果?