如何在IE中控制onbeforeunload的操作?

时间:2010-03-25 04:00:55

标签: 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属性弹出一个确认框,覆盖我的投票框,而大多数用户单击确定按钮,这意味着完成了关闭确认,作为一种习惯。所以我的问题是如何控制onbeforeunload自己制作的确认框?例如,如果我单击“确定”,我将转到投票框而不是关闭我的IE。所以我能做的只是定义它显示的消息。还有其他更好的方法吗?帮助非常感谢!

此致

1 个答案:

答案 0 :(得分:3)

很简单,你做不到。

这是内置行为,旨在为安全目的仅允许非常小的更改。每个浏览器都是一样的; FF,Chrome等都表现得一样。

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

此外,如果您的用户离开,已经太晚了 - 他们不想再回答调查了,他们已经完成了!

相关问题