javascript代码实例教程-[js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了

发布时间:2019-02-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-[js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 方法一

 

开始想了,既然刷新一下就不会出现该bug,就在弹出框关闭时将页面刷新。在弹出框的close的回调方法中添加代码:window.location.reload();每次弹出框关闭时,加个页面重新刷新一下,虽然解决了问题,但是,用户体验并不好,每次刷新,就会重新去读一次数据库,最后放弃了这个方式。

 

方法二

 

在弹出框的close的回调方法中,添加如下代码:

 

1                 close: function () {

2                  

3                     if ($('#BTnUpload').length > 0) { //注意jquery下检查一个元素是否存在必须使用 .length >0 来判断

4                         $('#btnUpload').uploadify('destroy');//如果存在,则将其销毁

5                     } 

6                 }

再次测试,问题解决。

 

问题解决了,为什么这就能解决问题呢?

 

猜想,第一次单击上传,根据上面列出的代码,可知每单击上传,就会通过uploadify方法创建上传flash对象,此时$('#btnUpload').length=1,此时id为(SWFUpload_0))的对象已经确定,关闭弹出框,但falsh对象仍然存在,并没有销毁。

 

再次单击的时

 

try { 

document.getElementById("SWFUpload_0").SetReturnValue(__flash__toXML(SWFUpload.instances["SWFUpload_0"].testExternalInterface()) ); 

catch (e) { document.getElementById("SWFUpload_0").SetReturnValue("<undefined/>"); }

 

 

不再创建id为(SWFUpload_0))的flash对象,还是第一次创建的flash对象占着茅坑不拉屎(占着id,但名没有创建对象),所以此时为null,为了保持id的唯一性?,ie对此有限制?,是不是其他浏览器,在id存在的情况下,会随机生成一个新的id?不是搞前端的,不得而知了。

 

这也是自己的猜想,有高手的话,可以给个官方的说法,如果我这个猜想成立,那么也从侧面印证了为什么刷新一下,就没有那个bug了,刷新又重新加载htML并且销毁了flash对象,单击上传又变成了第一次单击。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-[js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了全部内容,希望文章能够帮你解决javascript代码实例教程-[js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。