AngularJS使用uploadify插件的问题总结

AngularJS使用uploadify的过程中遇到了两个问题,总结如下:

  • 某个页面需要同时实例化多个uploadify组件时,出现“ID SWFUpload_0 is already in use. The Flash Object could not be added”的错误,分析jquery.uploadify.js代码发现,是由于是实例化SWFUload时用的是同一个名字,解决是:找到initSWFUploadify,修改如下(红色部分):
SWFUpload.prototype.initSWFUpload = function(b) {
    try {
        this.customSettings = {}, this.settings = b, this.eventQueue = []; var mydate = new Date(); this.movieName = "SWFUpload_" + mydate.getTime().toString(), this.movieElement = null, SWFUpload.instances[this.movieName] = this, this.initSettings(), this.loadFlash(), this.displayDebugInfo();
    } catch (a) {
        throw delete SWFUpload.instances[this.movieName], a;
    }
  • IE8/9出现ui-router不能跳转页面,地址栏的url变了,但是页面却没有变化,出现报错信息:

SCRIPT5007: 无法设置属性“SetButtonTextPadding”的值: 对象为 null 或未定义 
SCRIPT5007: 无法设置属性“SetButtonTextStyle”的值: 对象为 null 或未定义 
SCRIPT5007: 无法设置属性“SetButtonAction”的值: 对象为 null 或未定义 
SCRIPT5007: 无法设置属性“SetButtonDisabled”的值: 对象为 null 或未定义 
SCRIPT5007: 无法设置属性“SetButtonCursor”的值: 对象为 null 或未定义 
SCRIPT5007: 无法设置属性“TestExternalInterface”的值: 对象为 null 或未定义 
SCRIPT5007: 无法获取属性“SetReturnValue”的值: 对象为 null 或未定义 
SCRIPT5007: 无法获取属性“SetReturnValue”的值: 对象为 null 或未定义

这是由于在切换路由的时候,没有销毁uploadify实例对象导致的,解决办法如下:

  //状态切换开始时触发事件,销毁uploadify对象  $scope.$on(‘$stateChangeStart‘, function(e, toState, toParams, fromState, fromParams) {
      if (e && $(‘.uploadify‘).length > 0) {
        $(‘.uploadify‘).each(function (item) {
          $(this).uploadify(‘destroy‘);
        })
      }
    });

参考:http://blog.csdn.net/zhichao2001/article/details/46662705/

时间: 2024-10-06 21:25:25

AngularJS使用uploadify插件的问题总结的相关文章

Uploadify—借助Uploadify插件实现图片预览时如何解决Chrome浏览器报“喔唷,崩溃啦”

今天借助Uploadify插件实现了图片预览及其上传的功能,可是在Chrome浏览器中会时不时地出现如下图所示的情况: 解决方法:使用这种方法引用该插件js文件: <script type="text/javascript"> document.write("<script type='text/javascript' src='<%=basePath %>js/uploadify/jquery.uploadify.min.js?" +

jquery的uploadify插件多文件上传配置参数详解

最近做了个多文件上传,需要限制上传文件类型的例子.以前没做过找了一些资料,下次有用.同时也给大家做参考. uploader: uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. script: 后台处理程序的相对路径 .默认值:uploadify.php checkScript:用来判断上传选择的文 件在服务器是否存在的后台处理程序的相对路径 fileDataName:设置一个名字,在服务器处理

uploadify插件Http Error(302)错误记录(MVC)

由于项目(asp.net MVC)需要做一个附件上传的功能,使用的是jQuery的Uploadify插件的2.1.0版本,上传文件到自己项目指定的文件夹下面.做完之后,在谷歌上测试是正确的,在火狐上报Http 302的错误,自己也找了很多资料去看,也试了试,都不行,最后回本溯源,看302的错误解释.官方给的解释是:302重定向,暂时性转移. 自己就尝试着把处理文件上传的方法放到了另外一个Controller下面,结果在火狐上就不会报错了,好变态啊,自己花费好久都没解决的问题,在一瞬间竟然搞定了,

jquery.uploadify插件在chrom浏览器频繁崩溃问题

jquery.uploadify插件在chrom浏览器频繁崩溃问题,一直困扰了好久,网上很多人说是由于chrom缓存的原因,插件初始化时,需要引用js,而chrom的缓存导致没有没有请求到jquery.uploadify-3.1_min.js,所以引起崩溃,可以在引用js时,加入随机数:<script type="text/javascript" src="/js/jquery.uploadify-3.1_min.js?ver=<?php echo rand(0,

关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法

'VAR_SESSION_ID' => 'session_id', //修复uploadify插件无法传递session_id的bug 首先在项目目录中的Common/Conf/config.php中加入上面一条配置. 然后在你的上传页面的JS代码中加入session_id=>session_id()参数即可   "uploader": "{:U('Admin/Config/uploadify',array('session_id'=>session_id(

tp5使用uploadify插件做上传

uploadify插件地址 推荐使用flash版本 插件引入<script src="../jquery.js"></script><script src="../jquery.uploadify.min.js"></script><script type="text/javascript">$(function(){$("#uploadify").uploadify

解决uploadify插件不同浏览器下的兼容性问题

http://www.thinkphp.cn/code/2138.html uploadify在部分浏览器上没法使用,或者各种报错的解决方法.uploadify插件上传图片是很爽的体验. 如果用chrome浏览器使用该插件基本上不会出任何错误. 报错情况: 1.缺少flash插件. 这种情况比较好解决,直接下载一个flash for firefox插件安装上就可以解决了,或者在安装一个flash for ie插件. 2.直接HTTP 302错误. 这种情况说明页面做了session验证,做了重定

【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】

项目中遇到过这种情况: 利用uploadify插件在IE和chrome浏览器中上传附件正常, 突然有一天chrome禁用了flash插件,uploadify插件在chrome中就不能正常使用了,IE上正常. ========================================================================= ========================================================================

工作中碰到uploadify插件两个版本:HTML5和Flash

最近工作中碰到上传文件插件使用问题:在工作中碰到app嵌套html5页面中使用上传文件问题,因为之前使用的是stream上传插件(http://www.twinkling.cn/),但是该插件跨域传输出现问题,无法传输成功,经过几次调试都无法解决跨域,然后我就换了个插件uploadify,一开始用的flash版本,但是此版本不支持在app中使用,于是就想到了用html5版本的,感觉笨死了,这个问题整了时间有点长了,下面开始说html版本的使用 首先,页面代码: 后台代码: @SuppressWa