当前位置: 代码迷 >> 综合 >> 如何让ajaxfileupload.js支持IE9,IE10,并可以传递多个参数?
  详细解决方案

如何让ajaxfileupload.js支持IE9,IE10,并可以传递多个参数?

热度:3   发布时间:2024-01-13 01:02:21.0

1、如何让ajaxfileupload.js支持IE9、IE10?

打开ajaxfileupload 文件,找到下面的代码。

[javascript]  view plain copy
  1. if(window.ActiveXObject) {  
  2.     var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');  
  3.      if(typeof uri== 'boolean'){  
  4.          io.src = 'javascript:false';  
  5.      }  
  6.      else if(typeof uri== 'string'){  
  7.          io.src = uri;  
  8.      }  
  9.  }  
修改成如下:

[javascript]  view plain copy
  1. if(window.ActiveXObject) {  
  2.    if(jQuery.browser.version=="9.0" || jQuery.browser.version=="10.0"){  
  3.         var io = document.createElement('iframe');  
  4.         io.id = frameId;  
  5.         io.name = frameId;  
  6.     }else if(jQuery.browser.version=="6.0" || jQuery.browser.version=="7.0" || jQuery.browser.version=="8.0"){  
  7.         var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');  
  8.         if(typeof uri== 'boolean'){  
  9.             io.src = 'javascript:false';  
  10.         }  
  11.         else if(typeof uri== 'string'){  
  12.             io.src = uri;  
  13.         }  
  14.     }  
  15. }  

2、如何让ajaxfileupload.js可以在文件上传的同时传递多个台数。

找到以下代码:

[javascript]  view plain copy
  1. ajaxFileUpload: function(s) {  
  2.         // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout          
  3.         s = jQuery.extend({}, jQuery.ajaxSettings, s);  
  4.         var id = new Date().getTime()          
  5.     var form = jQuery.createUploadForm(id, s.fileElementId);  //变化前
增加自己要传递的参数:

[javascript]  view plain copy
  1. ajaxFileUpload: function(s) {  
  2.         // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout          
  3.         s = jQuery.extend({}, jQuery.ajaxSettings, s);  
  4.         var id = new Date().getTime()          
  5.     var form = jQuery.createUploadForm(id, s.fileElementId, s.tag_name, s.tag_link, s.tag_sort, s.tag_status, s.tag_id);//变化后
这里我们增加了五个传递参数。 s.tag_name, s.tag_link, s.tag_sort, s.tag_status, s.tag_id

接着找到:

[javascript]  view plain copy
  1. createUploadForm: function(id, fileElementId, tag_name, tag_link, tag_sort, tag_status, tag_id)//增加tag_name, tag_link, tag_sort, tag_status, tag_id  
  2.     {  
  3.         //create form     
  4.         var formId = 'jUploadForm' + id;  
  5.         var fileId = 'jUploadFile' + id;  
  6.         //--增加以下内容  
  7.         var tagNameId = 'tag_name' + id;  
  8.         var tagLinkId = 'tag_link' + id;  
  9.         var tagSortId = 'tag_sort' + id;  
  10.         var tagStatusId = 'tag_status' + id;  
  11.         var tagIdId = 'tag_id' + id;  
  12.         //--end  
  13.         var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');   
  14.         var oldElement = $('#' + fileElementId);  
  15.         var newElement = $(oldElement).clone();  
  16.         //--增加以下内容  
  17.         var tagNameElement = '<input type="text" name="tag_name" value="'+tag_name+'">';    
  18.         var tagLinkElement = '<input type="text" name="tag_link" value="'+tag_link+'">';  
  19.         var tagSortElement = '<input type="text" name="tag_sort" value="'+tag_sort+'">';  
  20.         var tagStatusElement = '<input type="text" name="tag_status" value="'+tag_status+'">';  
  21.         var tagIdElement = '<input type="text" name="tag_id" value="'+tag_id+'">';  
  22.         //--end  
  23.         $(oldElement).attr('id', fileId);  
  24.         $(oldElement).before(newElement);  
  25.         $(oldElement).appendTo(form);  
  26.         //--增加以下的内容  
  27.         $(tagNameElement).appendTo(form);  
  28.         $(tagLinkElement).appendTo(form);  
  29.         $(tagSortElement).appendTo(form);  
  30.         $(tagStatusElement).appendTo(form);  
  31.         $(tagIdElement).appendTo(form);  
  32.         //--end  
  33.         //set attributes  
  34.         $(form).css('position''absolute');  
  35.         $(form).css('top''-1200px');  
  36.         $(form).css('left''-1200px');  
  37.         $(form).appendTo('body');         
  38.         return form;  
  39.     },  
注意注释中的内容为增加了内容。

修改完后,如何使用?

[javascript]  view plain copy
  1. $.ajaxFileUpload({  
  2.        url:web_url,  
  3.        secureuri:false,  
  4.        //以下为增加的传递参数  
  5.        tag_name:tag_name,  
  6.        tag_link:tag_link,  
  7.        tag_sort:tag_sort,  
  8.        tag_status:tag_status,  
  9.        tag_id:tag_id,  
  10.        //--end  
  11.        fileElementId:result[0],  
  12.        dataType: 'json',  
  13.        success: function (data,status){}  
  14.        //以下省略  

OK,done.
  相关解决方案