zoukankan      html  css  js  c++  java
  • jquery多版本兼容方法

     框架使用的jq版本与上传文件的jq版本不一样

    开发者技术变现资源聚集地

    https://www.baiydu.com

    /*
    * jQuery 1.2.1 - New Wave Javascript

    jQuery.noConflict()的存在只有一个目的:它允许你在同一个页面加载多个jQuery实例,尤其是不同版本的jQuery。你可能会觉得奇怪,为什么要在一个页面加载/使用多个不同版本的jQuery对象呢?一般而言,有两种情况。第一种情况,你的业务代码采用了最新版的jQuery库,而你选用的第三方插件依赖的更早版本的jQuery库;第二种情况,你正维护着一个系统,它已有的业务代码由于各种原因,引用了较老版本的jQuery库,你新开发的模块采用的是其他版本的jQuery库。不论哪种情况,你都不得不面对,jQuery对象/方法冲突的问题。幸运的是,jQuery.noConflict()帮你解决了这个烦恼。

    */

    <script  type="text/javascript"  src="<%=basePath%>/resources/Js/jquery.js" ></script>  
    <!--  <script type="text/javascript" src="<%=basePath%>/resources/Js/ajaxfileupload.js" > </script> -->
         <script type="text/javascript" >
          
          
          var $jq = jQuery.noConflict(true);
    
          $jq.extend({
               createUploadIframe: function(id, uri)
              {
                      //create frame
                      var frameId = 'jUploadFrame' + id;
                      
                      if(window.ActiveXObject) {
                             if($jq.browser.version=="9.0" || $jq.browser.version=="10.0"){
                                  var io = document.createElement('iframe');
                                  io.id = frameId;
                                  io.name = frameId;
                              }else if($jq.browser.version=="6.0" || $jq.browser.version=="7.0" || $jq.browser.version=="8.0"){
                                  var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
                                  if(typeof uri== 'boolean'){
                                      io.src = 'javascript:false';
                                  }
                                  else if(typeof uri== 'string'){
                                      io.src = uri;
                                  }
                              }
                          }
                      else {
                          var io = document.createElement('iframe');
                          io.id = frameId;
                          io.name = frameId;
                      }
                      io.style.position = 'absolute';
                      io.style.top = '-1000px';
                      io.style.left = '-1000px';
    
                      document.body.appendChild(io);
    
                      return io            
              },
              createUploadForm: function(id, fileElementId,data)
              {
                  //create form    
                  var formId = 'jUploadForm' + id;
                  var fileId = 'jUploadFile' + id;
                  var form = $jq('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');    
                  var oldElement = $jq('#' + fileElementId);
                  if(typeof(fileElementId) == 'string'){
                      fileElementId = [fileElementId];
                  }
                  for(var i in fileElementId){
                      var oldElement = $jq('#' + fileElementId[i]);
                      var newElement = $jq(oldElement).clone();
                      $jq(oldElement).attr('id', fileId);
                      $jq(oldElement).before(newElement);
                      $jq(oldElement).appendTo(form);
                  }
                  //set attributes
                  if (data) {
                      for ( var i in data) {
                          $jq('<input type="hidden" name="' + i + '" value="' + data[i] + '" />').appendTo(form);
                      }
                  }
                  
                  $jq(form).css('position', 'absolute');
                  $jq(form).css('top', '-1200px');
                  $jq(form).css('left', '-1200px');
                  $jq(form).appendTo('body');        
                  return form;
              },
    
              ajaxFileUpload: function(s) {
                  // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout        
                  s = $jq.extend({}, $jq.ajaxSettings, s);
                  var id = new Date().getTime()        
                  var form = $jq.createUploadForm(id, s.fileElementId,s.data);
                  var io = $jq.createUploadIframe(id, s.secureuri);
                  var frameId = 'jUploadFrame' + id;
                  var formId = 'jUploadForm' + id;        
                  // Watch for a new set of requests
                  if ( s.global && ! $jq.active++ )
                  {
                      $jq.event.trigger( "ajaxStart" );
                  }            
                  var requestDone = false;
                  // Create the request object
                  var xml = {}   
                  if ( s.global )
                      $jq.event.trigger("ajaxSend", [xml, s]);
                  // Wait for a response to come back
                  var uploadCallback = function(isTimeout)
                  {            
                      var io = document.getElementById(frameId);
                      try 
                      {                
                          if(io.contentWindow)
                          {
                               xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
                               xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
                               
                          }else if(io.contentDocument)
                          {
                               xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
                              xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
                          }                        
                      }catch(e)
                      {
                          $jq.handleError(s, xml, null, e);
                      }
                      if ( xml || isTimeout == "timeout") 
                      {                
                          requestDone = true;
                          var status;
                          try {
                              status = isTimeout != "timeout" ? "success" : "error";
                              // Make sure that the request was successful or notmodified
                              if ( status != "error" )
                              {
                                  // process the data (runs the xml through httpData regardless of callback)
                                  var data = $jq.uploadHttpData( xml, s.dataType );    
                                  // If a local callback was specified, fire it and pass it the data
                                  if ( s.success )
                                      s.success( data, status );
              
                                  // Fire the global callback
                                  if( s.global )
                                      $jq.event.trigger( "ajaxSuccess", [xml, s] );
                              } else
                                  $jq.handleError(s, xml, status);
                          } catch(e) 
                          {
                              status = "error";
                              $jq.handleError(s, xml, status, e);
                          }
    
                          // The request was completed
                          if( s.global )
                              $jq.event.trigger( "ajaxComplete", [xml, s] );
    
                          // Handle the global AJAX counter
                          if ( s.global && ! --$jq.active )
                              $jq.event.trigger( "ajaxStop" );
    
                          // Process result
                          if ( s.complete )
                              s.complete(xml, status);
    
                          $jq(io).unbind()
    
                          setTimeout(function()
                                              {    try 
                                                  {
                                                      $jq(io).remove();
                                                      $jq(form).remove();    
                                                      
                                                  } catch(e) 
                                                  {
                                                      $jq.handleError(s, xml, null, e);
                                                  }                                    
    
                                              }, 100)
    
                          xml = null
    
                      }
                  }
                  // Timeout checker
                  if ( s.timeout > 0 ) 
                  {
                      setTimeout(function(){
                          // Check to see if the request is still happening
                          if( !requestDone ) uploadCallback( "timeout" );
                      }, s.timeout);
                  }
                  try 
                  {
                     // var io = $jq('#' + frameId);
                      var form = $jq('#' + formId);
                      $jq(form).attr('action', s.url);
                      $jq(form).attr('method', 'POST');
                      $jq(form).attr('target', frameId);
                      if(form.encoding)
                      {
                          form.encoding = 'multipart/form-data';                
                      }
                      else
                      {                
                          form.enctype = 'multipart/form-data';
                      }            
                      $jq(form).submit();
    
                  } catch(e) 
                  {            
                      $jq.handleError(s, xml, null, e);
                  }
                  if(window.attachEvent){
                      document.getElementById(frameId).attachEvent('onload', uploadCallback);
                  }
                  else{
                      document.getElementById(frameId).addEventListener('load', uploadCallback, false);
                  }         
                  return {abort: function () {}};    
    
              },
    
              uploadHttpData: function( r, type ) {
                  var data = !type;
                  data = type == "xml" || data ? r.responseXML : r.responseText;
                  // If the type is "script", eval it in global context
                  if ( type == "script" )
                      $jq.globalEval( data );
                  // Get the JavaScript object, if JSON is used.
                  if ( type == "json" ){
                      ////////////以下为新增代码///////////////  
                      data = r.responseText;  
                      var start = data.indexOf(">");  
                      if(start != -1) {  
                          var end = data.indexOf("<", start + 1);  
                          if(end != -1) {  
                            data = data.substring(start + 1, end);  
                          }  
                      }  
                      ///////////以上为新增代码///////////////  
                      eval( "data = " + data );
                  // evaluate scripts within html
                  }
                  if ( type == "html" )
                      $jq("<div>").html(data).evalScripts();
                      //alert($jq('param', data).each(function(){alert($jq(this).attr('value'));}));
                  return data;
              },
              handleError: function( s, xhr, status, e ) {
                  // If a local callback was specified, fire it
                          if ( s.error ) {
                              s.error.call( s.context || s, xhr, status, e );
                          }
    
                          // Fire the global callback
                          if ( s.global ) {
                              (s.context ? $jq(s.context) : $jq.event).trigger( "ajaxError", [xhr, s, e] );
                          }
              }
          })
    
    
          
       
    function uploadFile() { 
            var file = $jq("#inputFile").val();
            if (file != "" && file != null) {
                $jq.ajaxFileUpload({
                    url: "http://localhost:8080/autoDrainageServlet/myQQNumberServlet",
                    secureuri: false,
                    //name:'inputFile',
                    fileElementId: 'inputFile',//file标签的id
                    dataType: 'json',//返回数据的类型
                    global:true,
                    data:{headCode:'SumAmount'},
                    complete:function(){
                        $jq.messager.progress('close');
                        $jq("#inputFile").val("");
                    },
                    success: function (data) {
    
                        if (data =="0") {
                            HdUtil.messager.info("表格数据导入成功");
                           // alert("上传成功");
                            queryCodShipData();
    
                        } else {
                            alert("上传失败");
    
                        }
    
    
                    },
    
                });
        }
    }
     </script>
     

    /*
    jquery-1.8.1
    */
    <script type="text/javascript" src="<%=basePath%>/resources/Js/jquery-1.8.1.min.js"></script> <script type="text/javascript" src="<%=basePath%>/resources/Js/bui-min.js"></script>
  • 相关阅读:
    Task的使用
    WinStore之Application Data
    WinStore控件之Button、HyperlinkButton、RadioButton、CheckBox、progressBar、ScrollViewer、Slider
    WinStore控件之TextBox
    WinStore控件之TextBlock
    WinStore控件之Button
    设计模式之单例模式
    WinStore开发知识导航集锦
    WindowsStore页面导航
    导出程序界面(UI)到图片
  • 原文地址:https://www.cnblogs.com/xiaoliao/p/10945339.html
Copyright © 2011-2022 走看看