我最近遇到了一个关于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/