JavaScript和onbeforeunload?
-
19-09-2019 - |
题
我
<span class="cssButton"><a href="javascript:void(0);" class="buttonBlue" onclick="swfu.startUpload();"> <img src="http://uber-upload.com/img/icons/up_16.png" alt=""/> Uber-Upload! </a></span>
,我想使它所以,如果你按下那个按钮,它也设置了一个变量,使得它如此,如果你试图离开页面,就会弹出那些“你确定要离开此页”警示,以防止有人意外离开而有一个上传回事。
不要担心取消设置上传完成后的变量,我要补充的是,我只需要你聪明的程序员,使我的框架之一。
谢谢!
解决方案
此声明添加到页:
var upcount = 0;
您的onclick更改为:
onclick="++upcount; swfu.startUpload();"
如果该swfu
给你一些类型的事件,当它完成上传,把这个就可以了:
--upcount;
和添加此处理程序:
window.onbeforeunload = function() {
if (upcount > 0) {
return "The upload is still in progress, leaving the page will cancel it.";
}
}
当浏览器尊重onbeforeunload,那会工作。而他们中的大多数,大部分时间。如果它们不,好,你试过。需要注意的是,通过使用一个计数器,你允许多个上传。
您可以考虑的attachEvent(IE)或的addEventListener(标准)(或类似的原型或jQuery的库,抚平你的不同),用于连接您的事件,而不是使用属性。使用属性(又名DOM0处理程序)是相当守旧,有些限制(只有一个每个元素每个事件处理函数)。但它仍然可以工作。
其他提示
function warnUser()
{
if(dataIsDirty)
{
return "You have made changes. They will be lost if you continue.";
}
else
{
// Reset the flag to its default value.
dataIsDirty = false;
}
}
function isDirty()
{
dataIsDirty = true;
}
function isClean()
{
dataIsDirty = false;
}
然后你使用它,就像在onbeforeunload
事件。
window.onbeforeunload = warnUser;
dataIsDirty = false; //Or true, depending on if you want it to show up even if they dont' make changes)
然后使用它,只需使用“isClean”功能,任何你不想触发它(保存,例如),或者你可以将“isDirty”对任何事件你要他们离开之前触发它(比方说,编辑表单字段)。
依托onbeforeunload是粗略的最好的。由于垃圾邮件发送者滥用你是在暗示人们做到这一点已基本清除的能力以同样的方式行为。
您现在可以只响应onbeforeunload如果关闭事件是从激活按钮或例如
烧制