⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connection.js

📁 目录树,在脚本中可以直接调用后台java代码,动态加载数据至页面显示.
💻 JS
📖 第 1 页 / 共 3 页
字号:
		}		// If the isUpload argument is true, setForm will call createFrame to initialize		// an iframe as the form target.		//		// The argument secureURI is also required by IE in SSL environments		// where the secureURI string is a fully qualified HTTP path, used to set the source		// of the iframe, to a stub resource in the same domain.		if(isUpload){			// Create iframe in preparation for file upload.			var io = this.createFrame(secureUri?secureUri:null);			// Set form reference and file upload properties to true.			this._isFormSubmit = true;			this._isFileUpload = true;			this._formNode = oForm;			return;		}		var oElement, oName, oValue, oDisabled;		var hasSubmit = false;		// Iterate over the form elements collection to construct the		// label-value pairs.		for (var i=0; i<oForm.elements.length; i++){			oElement = oForm.elements[i];			oDisabled = oForm.elements[i].disabled;			oName = oForm.elements[i].name;			oValue = oForm.elements[i].value;			// Do not submit fields that are disabled or			// do not have a name attribute value.			if(!oDisabled && oName)			{				switch(oElement.type)				{					case 'select-one':					case 'select-multiple':						for(var j=0; j<oElement.options.length; j++){							if(oElement.options[j].selected){								if(window.ActiveXObject){									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text) + '&';								}								else{									this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text) + '&';								}							}						}						break;					case 'radio':					case 'checkbox':						if(oElement.checked){							this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';						}						break;					case 'file':						// stub case as XMLHttpRequest will only send the file path as a string.					case undefined:						// stub case for fieldset element which returns undefined.					case 'reset':						// stub case for input type reset button.					case 'button':						// stub case for input type button elements.						break;					case 'submit':						if(hasSubmit === false){							if(this._hasSubmitListener && this._submitElementValue){								this._sFormData += this._submitElementValue + '&';							}							else{								this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';							}							hasSubmit = true;						}						break;					default:						this._sFormData += encodeURIComponent(oName) + '=' + encodeURIComponent(oValue) + '&';				}			}		}		this._isFormSubmit = true;		this._sFormData = this._sFormData.substr(0, this._sFormData.length - 1);		return this._sFormData;	},  /**   * @description Resets HTML form properties when an HTML form or HTML form   * with file upload transaction is sent.   * @method resetFormState   * @private   * @static   * @return {void}   */	resetFormState:function(){		this._isFormSubmit = false;		this._isFileUpload = false;		this._formNode = null;		this._sFormData = "";	},  /**   * @description Creates an iframe to be used for form file uploads.  It is remove from the   * document upon completion of the upload transaction.   * @method createFrame   * @private   * @static   * @param {string} optional qualified path of iframe resource for SSL in IE.   * @return {void}   */	createFrame:function(secureUri){		// IE does not allow the setting of id and name attributes as object		// properties via createElement().  A different iframe creation		// pattern is required for IE.		var frameId = 'yuiIO' + this._transaction_id;		var io;		if(window.ActiveXObject){			io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');			// IE will throw a security exception in an SSL environment if the			// iframe source is undefined.			if(typeof secureUri == 'boolean'){				io.src = 'javascript:false';			}			else if(typeof secureURI == 'string'){				// Deprecated				io.src = secureUri;			}		}		else{			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);	},  /**   * @description Parses the POST data and creates hidden form elements   * for each key-value, and appends them to the HTML form object.   * @method appendPostData   * @private   * @static   * @param {string} postData The HTTP POST data   * @return {array} formElements Collection of hidden fields.   */	appendPostData:function(postData)	{		var formElements = [];		var postMessage = postData.split('&');		for(var i=0; i < postMessage.length; i++){			var delimitPos = postMessage[i].indexOf('=');			if(delimitPos != -1){				formElements[i] = document.createElement('input');				formElements[i].type = 'hidden';				formElements[i].name = postMessage[i].substring(0,delimitPos);				formElements[i].value = postMessage[i].substring(delimitPos+1);				this._formNode.appendChild(formElements[i]);			}		}		return formElements;	},  /**   * @description Uploads HTML form, inclusive of files/attachments, using the   * iframe created in createFrame to facilitate the transaction.   * @method uploadFile   * @private   * @static   * @param {int} id The transaction id.   * @param {object} callback User-defined callback object.   * @param {string} uri Fully qualified path of resource.   * @param {string} postData POST data to be submitted in addition to HTML form.   * @return {void}   */	uploadFile:function(o, callback, uri, postData){		// Each iframe has an id prefix of "yuiIO" followed		// by the unique transaction id.		var frameId = 'yuiIO' + o.tId;		var uploadEncoding = 'multipart/form-data';		var io = document.getElementById(frameId);		var oConn = this;		// Track original HTML form attribute values.		var rawFormAttributes =		{			action:this._formNode.getAttribute('action'),			method:this._formNode.getAttribute('method'),			target:this._formNode.getAttribute('target')		};		// Initialize the HTML form properties in case they are		// not defined in the HTML form.		this._formNode.setAttribute('action', uri);		this._formNode.setAttribute('method', 'POST');		this._formNode.setAttribute('target', frameId);		if(this._formNode.encoding){			// IE does not respect property enctype for HTML forms.			// Instead it uses the property - "encoding".			this._formNode.setAttribute('encoding', uploadEncoding);		}		else{			this._formNode.setAttribute('enctype', uploadEncoding);		}		if(postData){			var oElements = this.appendPostData(postData);		}		// Start file upload.		this._formNode.submit();		// Fire global custom event -- startEvent		this.startEvent.fire(o);		if(o.startEvent){			// Fire transaction custom event -- startEvent			o.startEvent.fire(o);		}		// Start polling if a callback is present and the timeout		// property has been defined.		if(callback && callback.timeout){			this._timeOut[o.tId] = window.setTimeout(function(){ oConn.abort(o, callback, true); }, callback.timeout);		}		// Remove HTML elements created by appendPostData		if(oElements && oElements.length > 0){			for(var i=0; i < oElements.length; i++){				this._formNode.removeChild(oElements[i]);			}		}		// Restore HTML form attributes to their original		// values prior to file upload.		for(var prop in rawFormAttributes){			if(YAHOO.lang.hasOwnProperty(rawFormAttributes, prop)){				if(rawFormAttributes[prop]){					this._formNode.setAttribute(prop, rawFormAttributes[prop]);				}				else{					this._formNode.removeAttribute(prop);				}			}		}		// Reset HTML form state properties.		this.resetFormState();		// Create the upload callback handler that fires when the iframe		// receives the load event.  Subsequently, the event handler is detached		// and the iframe removed from the document.		var uploadCallback = function()		{			if(callback && callback.timeout){				window.clearTimeout(oConn._timeOut[o.tId]);				delete oConn._timeOut[o.tId];			}			// Fire global custom event -- completeEvent			oConn.completeEvent.fire(o);			if(o.completeEvent){				// Fire transaction custom event -- completeEvent				o.completeEvent.fire(o);			}			var obj = {};			obj.tId = o.tId;			obj.argument = callback.argument;			try			{				// responseText and responseXML will be populated with the same data from the iframe.				// Since the HTTP headers cannot be read from the iframe				obj.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:io.contentWindow.document.documentElement.textContent;				obj.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;			}			catch(e){}			if(callback && callback.upload){				if(!callback.scope){					callback.upload(obj);				}				else{					callback.upload.apply(callback.scope, [obj]);				}			}			// Fire global custom event -- completeEvent			oConn.uploadEvent.fire(obj);			if(o.uploadEvent){				// Fire transaction custom event -- completeEvent				o.uploadEvent.fire(obj);			}			if(YAHOO.util.Event){				YAHOO.util.Event.removeListener(io, "load", uploadCallback);			}			else if(window.detachEvent){				io.detachEvent('onload', uploadCallback);			}			else{				io.removeEventListener('load', uploadCallback, false);			}			setTimeout(				function(){					document.body.removeChild(io);					oConn.releaseObject(o);				}, 100);		};		// Bind the onload handler to the iframe to detect the file upload response.		if(YAHOO.util.Event){			YAHOO.util.Event.addListener(io, "load", uploadCallback);		}		else if(window.attachEvent){			io.attachEvent('onload', uploadCallback);		}		else{			io.addEventListener('load', uploadCallback, false);		}	},  /**   * @description Method to terminate a transaction, if it has not reached readyState 4.   * @method abort   * @public   * @static   * @param {object} o The connection object returned by asyncRequest.   * @param {object} callback  User-defined callback object.   * @param {string} isTimeout boolean to indicate if abort resulted from a callback timeout.   * @return {boolean}   */	abort:function(o, callback, isTimeout)	{		var abortStatus;		if(o.conn){			if(this.isCallInProgress(o)){				// Issue abort request				o.conn.abort();				window.clearInterval(this._poll[o.tId]);				delete this._poll[o.tId];				if(isTimeout){					window.clearTimeout(this._timeOut[o.tId]);					delete this._timeOut[o.tId];				}				abortStatus = true;			}		}		else if(o.isUpload === true){			var frameId = 'yuiIO' + o.tId;			var io = document.getElementById(frameId);			if(io){				// Destroy the iframe facilitating the transaction.				document.body.removeChild(io);				if(isTimeout){					window.clearTimeout(this._timeOut[o.tId]);					delete this._timeOut[o.tId];				}				abortStatus = true;			}		}		else{			abortStatus = false;		}		if(abortStatus === true){			// Fire global custom event -- abortEvent			this.abortEvent.fire(o);			if(o.abortEvent){				// Fire transaction custom event -- abortEvent				o.abortEvent.fire(o);			}			this.handleTransactionResponse(o, callback, true);		}		else{		}		return abortStatus;	},  /**   * Public method to check if the transaction is still being processed.   *   * @method isCallInProgress   * @public   * @static   * @param {object} o The connection object returned by asyncRequest   * @return {boolean}   */	isCallInProgress:function(o)	{		// if the XHR object assigned to the transaction has not been dereferenced,		// then check its readyState status.  Otherwise, return false.		if(o && o.conn){			return o.conn.readyState !== 4 && o.conn.readyState !== 0;		}		else if(o && o.isUpload === true){			var frameId = 'yuiIO' + o.tId;			return document.getElementById(frameId)?true:false;		}		else{			return false;		}	},  /**   * @description Dereference the XHR instance and the connection object after the transaction is completed.   * @method releaseObject   * @private   * @static   * @param {object} o The connection object   * @return {void}   */	releaseObject:function(o)	{		//dereference the XHR instance.		if(o.conn){			o.conn = null;		}		//dereference the connection object.		o = null;	}};YAHOO.register("connection", YAHOO.util.Connect, {version: "2.3.0", build: "442"});

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -