From: Dion O. <dol...@us...> - 2005-12-28 15:31:11
|
Update of /cvsroot/magicajax/magicajax/Core/script In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26287/magicajax/Core/script Modified Files: AjaxCallObject.js Log Message: - fix: input type='image' are now supported for IE only (for other browsers forces a normal postback) Index: AjaxCallObject.js =================================================================== RCS file: /cvsroot/magicajax/magicajax/Core/script/AjaxCallObject.js,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** AjaxCallObject.js 28 Dec 2005 11:53:46 -0000 1.39 --- AjaxCallObject.js 28 Dec 2005 15:30:57 -0000 1.40 *************** *** 168,172 **** AjaxCallObject.prototype.GetTargetElement = function(eventTarget) { ! var target = null; var elemUniqueID = eventTarget.split("$").join(":"); var ids = elemUniqueID.split(":"); --- 168,175 ---- AjaxCallObject.prototype.GetTargetElement = function(eventTarget) { ! var target = document.getElementById(eventTarget); ! if (target != null) ! return target; ! var elemUniqueID = eventTarget.split("$").join(":"); var ids = elemUniqueID.split(":"); *************** *** 258,263 **** if (cbType != "none") { ! AJAXCbo.DoAjaxCall(target.name, "", cbType, AJAXCbo.GetAjaxScopeID(target)); ! return false; } else --- 261,265 ---- if (cbType != "none") { ! return !AJAXCbo.DoAjaxCall(target.name, "", cbType, AJAXCbo.GetAjaxScopeID(target)); } else *************** *** 360,419 **** AjaxCallObject.prototype.DoAjaxCall = function(eventTarget, eventArgument, ajaxCallType, ajaxScopeID) { ! //defaults ! if (!ajaxCallType) ajaxCallType = "async"; ! var theData = ''; ! var theform = document.forms[0]; ! var thePage = theform.action; ! var eName = ''; ! theData = '__EVENTTARGET=' + this.EncodePostData(eventTarget.split("$").join(":")) + '&'; ! theData += '__EVENTARGUMENT=' + this.EncodePostData(eventArgument) + '&'; ! theData += '__AJAXCALL=true&'; ! if (ajaxScopeID != null) ! theData += '__AJAXSCOPE=' + ajaxScopeID + '&'; ! var excludeFlags = this.GetExcludeFlags( this.GetTargetElement(eventTarget) ); ! var elemCount = theform.elements.length; ! for( var i=0; i<elemCount; i++ ) ! { ! curElem = theform.elements[i]; ! eName = curElem.name; ! if( eName && eName != '') ! { ! if( eName == '__EVENTTARGET' || eName == '__EVENTARGUMENT' ) ! { ! // Do Nothing ! } ! else if ( ! this.ExcludeFromPost(curElem, ajaxScopeID, excludeFlags) ) { ! if ( __bPageIsStored && eName == '__VIEWSTATE' ) ! continue; ! var type = curElem.type; ! var val = curElem.value; ! if ( type == "submit" || type == "button" ) ! continue; ! val = this.EncodePostData(val); ! if ( type == "select-multiple" || type == "select-one" ) ! { ! var selectLength = curElem.options.length; ! var optNameStr = this.EncodePostData(eName); ! for (var j=0; j < selectLength; j++) ! if (curElem.options[j].selected) ! theData = theData + optNameStr + '=' + this.EncodePostData(curElem.options[j].value) + '&'; ! } ! else if ( (type != "checkbox" && type != "radio") || curElem.checked ) ! { ! theData = theData + this.EncodePostData(eName) + '=' + val + '&'; } } ! } ! } if (theData.substr(theData.length-1) == "&") --- 362,432 ---- AjaxCallObject.prototype.DoAjaxCall = function(eventTarget, eventArgument, ajaxCallType, ajaxScopeID) { ! //defaults ! if (!ajaxCallType) ajaxCallType = "async"; ! var theData = ''; ! var theform = document.forms[0]; ! var thePage = theform.action; ! var eName = ''; ! theData = '__EVENTTARGET=' + this.EncodePostData(eventTarget.split("$").join(":")) + '&'; ! theData += '__EVENTARGUMENT=' + this.EncodePostData(eventArgument) + '&'; ! theData += '__AJAXCALL=true&'; ! if (ajaxScopeID != null) ! theData += '__AJAXSCOPE=' + ajaxScopeID + '&'; ! //check if eventTarget is an input element of type 'image' ! var target = this.GetTargetElement(eventTarget) ! if (target != null && target.type == "image" && target.name && target.name != '') ! { ! //image callbacks only supported for IE (for now). For other browsers force a postback. ! if (window.event) ! theData += target.name + ".x=" + window.event.offsetX + "&" + target.name + ".y=" + (window.event.offsetY - target.offsetTop) + "&"; ! else ! return false; ! } ! var excludeFlags = this.GetExcludeFlags( target ); ! ! var elemCount = theform.elements.length; ! for( var i=0; i<elemCount; i++ ) ! { ! curElem = theform.elements[i]; ! eName = curElem.name; ! if( eName && eName != '') { ! if( eName == '__EVENTTARGET' || eName == '__EVENTARGUMENT' ) ! { ! // Do Nothing ! } ! else if ( ! this.ExcludeFromPost(curElem, ajaxScopeID, excludeFlags) ) ! { ! if ( __bPageIsStored && eName == '__VIEWSTATE' ) ! continue; ! var type = curElem.type; ! var val = curElem.value; ! if ( type == "submit" || type == "button" ) ! continue; ! val = this.EncodePostData(val); ! if ( type == "select-multiple" || type == "select-one" ) ! { ! var selectLength = curElem.options.length; ! var optNameStr = this.EncodePostData(eName); ! for (var j=0; j < selectLength; j++) ! if (curElem.options[j].selected) ! theData = theData + optNameStr + '=' + this.EncodePostData(curElem.options[j].value) + '&'; ! } ! else if ( (type != "checkbox" && type != "radio") || curElem.checked ) ! { ! theData = theData + this.EncodePostData(eName) + '=' + val + '&'; ! } } } ! } if (theData.substr(theData.length-1) == "&") *************** *** 467,470 **** --- 480,484 ---- } } + return true; } |