Javascript 和 onbeforeunload?

标签 javascript alert onbeforeunload

我有

<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="++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(标准)(或像 Prototype 或 jQuery 这样可以为您消除差异的库)来附加事件而不是使用属性。使用属性(又名 DOM0 处理程序)相当老式并且有点限制(每个元素每个事件只有一个处理程序)。但它仍然有效。

关于Javascript 和 onbeforeunload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308575/

相关文章:

ios - NSTimer火特定代码,而不是选择器

javascript - beforeunload on IE 11 - 不提示用户不起作用

javascript - 模态警告框

javascript - Windows Azure云服务中的全局变量

java - Selenium 警报仅在 Debug模式下显示

javascript - 我如何要求用户确认他们要离开页面?

javascript - 捕获 beforeunload 确认已取消?

javascript - 为什么我不能在 ajax 成功中访问 $(this)

javascript - 如何使用 Cheerio js 删除 <div> 和 <br>?

Jquery attr ('id' ) 不起作用