?? aa.js
字號:
div.style.position = "absolute";
div.style.border = "1 solid black";
div.style.color = "white";
div.style.backgroundColor = "blue";
div.style.width = "100px";
div.style.heigth = "50px";
div.style.fontFamily = "Arial, Helvetica, sans-serif";
div.style.fontWeight = "bold";
div.style.fontSize = "11px";
}
div.style.top = document.body.scrollTop + "px";
div.style.left = (document.body.offsetWidth - 100 - (document.all?20:0)) + "px";
div.style.display = "";
}
/**
* Default sample loading message hide function. Overrride it if you like.
*/
AjaxAnywhere.prototype.hideLoadingMessage = function() {
var div = document.getElementById("AA_" + this.id + "_loading_div");
if (div != null)
div.style.display = "none";
}
/**
* This function is used to facilitatte AjaxAnywhere integration with existing projects/frameworks.
* It substitutes default Form.sumbit().
* The new implementation calls AjaxAnywhere.isFormSubmitByAjax() function to find out if the form
* should be submitted in traditional way or by AjaxAnywhere.
*/
AjaxAnywhere.prototype.substituteFormSubmitFunction = function() {
if (this.notSupported)
return;
this.bindById();
var form = this.findForm();
form.submit_old = form.submit;
var code = "var ajax = AjaxAnywhere.findInstance(\"" + this.id + "\"); " +
"if (typeof ajax !='object' || ! ajax.isFormSubmitByAjax() ) " +
"ajax.findForm().submit_old();" +
" else " +
"ajax.submitAJAX();"
form.submit = new Function(code);
}
/**
* Substitutes the default behavior of <input type=submit|image> to submit the form via AjaxAnywhere.
*
* @param {boolean} indicates if existing onClick handlers should be preserved.
* If keepExistingOnClickHandler==true,
* Existing handler will be called first if it returns false, or if event.returnValue==false, AjaxAnywhere will not
* continue form submission.
* If keepExistingOnClickHandler==false or undefines, existing onClick event handlers will be replaced.
*
* @param {Array} list of submitButtons and submitImages names. If the parameter is omitted or undefined,
* all elements will be processed
*/
AjaxAnywhere.prototype.substituteSubmitButtonsBehavior = function (keepExistingOnClickHandler, elements) {
if (this.notSupported)
return;
var form = this.findForm();
if (elements == null || typeof elements == "undefined") { // process all elements
elements = new Array();
for (var i = 0; i < form.elements.length; i++) {
elements.push(form.elements[i]);
}
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (input.type != null && typeof input.type != "undefined" &&
input.type.toLowerCase() == "image" && input.form == form) {
elements.push(input);
}
}
for (var i = 0; i < elements.length; i++) {
var el = elements[i];
if (el.tagName.toLowerCase() == "input" && (el.type.toLowerCase() == "submit"
|| el.type.toLowerCase() == "image")) {
this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
}
}
} else { //process only specified elements
for (var i = 0; i < elements.length; i++) {
var el = elements[i];
if (el == null)
continue;
if (typeof el != "object")
el = form.elements[el];
if (typeof el != "undefined") {
if (el.tagName.toLowerCase() == "input" && (el.type.toLowerCase() == "submit"
|| el.type.toLowerCase() == "image"))
this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
}
}
}
}
/**
* Performs a single element behavior substitution
*
* @private
*/
AjaxAnywhere.prototype.substituteSubmitBehavior = function (el, keepExistingOnClickHandler) {
var inList = false;
for (var i = 0; i < this.substitutedSubmitButtons.length; i++) {
var btnName = this.substitutedSubmitButtons[i];
if (btnName == el.name) {
inList = true;
break;
}
}
if (!inList)
this.substitutedSubmitButtons.push(el.name);
this.substitutedSubmitButtonsInfo[el.name] = keepExistingOnClickHandler;
if (keepExistingOnClickHandler && (typeof el.onclick != "undefined") && ( el.onclick != null) && ( el.onclick != "")) {
el.AA_old_onclick = el.onclick;
}
el.onclick = handleSubmitButtonClick;
el.ajaxAnywhereId = this.id;
}
/**
*
* @private
*/
AjaxAnywhere.prototype.restoreSubstitutedSubmitButtons = function() {
if (this.substitutedSubmitButtons.length == 0)
return;
var form = this.findForm();
for (var i = 0; i < this.substitutedSubmitButtons.length; i++) {
var name = this.substitutedSubmitButtons[i];
var el = form.elements[name];
if (el != null && typeof el != "undefined") {
if (el.onclick != handleSubmitButtonClick) {
var keepExistingOnClickHandler = this.substitutedSubmitButtonsInfo[el.name];
this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
}
} else {
//input type=image
if (name != null && typeof name != "undefined" && name.length != 0) {
var elements = document.getElementsByName(name);
if (elements != null)
for (var j = 0; j < elements.length; j++) {
el = elements[j];
if (el != null && typeof el != "undefined"
&& el.tagName.toLowerCase() == "input"
&& typeof el.type != "undefined" && el.type.toLowerCase() == "image") {
if (el.onclick != handleSubmitButtonClick) {
var keepExistingOnClickHandler = this.substitutedSubmitButtonsInfo[el.name];
this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
}
}
}
}
}
}
}
/**
* @private
*/
function handleSubmitButtonClick(_event) {
if (typeof this.AA_old_onclick != "undefined") {
if (false == this.AA_old_onclick(_event))
return false;
if (typeof window.event != "undefined")
if (window.event.returnValue == false)
return false;
}
var onsubmit = this.form.onsubmit;
if (typeof onsubmit == "function") {
if (false == onsubmit(_event))
return false;
if (typeof window.event != "undefined")
if (window.event.returnValue == false)
return false;
}
AjaxAnywhere.findInstance(this.ajaxAnywhereId).submitAJAX('', this);
return false;
}
/**
* Override this function if you use AjaxAnywhere.substituteFormSubmitFunction() to
* dynamically inform AjaxAnywhere of the method you want to use for the form submission.
*/
AjaxAnywhere.prototype.isFormSubmitByAjax = function () {
return true;
}
/**
* Some browsers (notably IE) do not load images from thier cache when content is updated using
* innerHTML. As a result, each image is re-requested from the server even though the image exists
* in the cache. To work around this issue, AjaxAnywhere preloads images present in the new content
* and intrduces a brief dely (default of 100 milleseconds) before calling innerHTML.
* See http://support.microsoft.com/default.aspx?scid=kb;en-us;319546 for further details.
* This function can be used to change this behaviour.
* @param (boolean) isDelay
*/
AjaxAnywhere.prototype.setDelayBeforeLoad = function (isDelay) {
this.delayBeforeContentUpdate = isDelay;
}
/**
* Returns the current delay behavior.
*/
AjaxAnywhere.prototype.isDelayBeforeLoad = function () {
return this.delayBeforeContentUpdate;
}
/**
* Sets the delay period in milliseconds. The default delay is 100 milliseconds.
* @param (int) delayMillis
*/
AjaxAnywhere.prototype.setDelayTime = function (delayMillis) {
this.delayInMillis = delayMillis;
}
/**
* Returns the delay period in milliseconds.
*/
AjaxAnywhere.prototype.getDelayTime = function () {
return this.delayInMillis;
}
/**
* If an exception is throws on the server-side during AJAX request, it will be processed
* by this function. The default implementation is alert(stackTrace);
* Override it if you need.
*/
AjaxAnywhere.prototype.handleException = function(type, details) {
alert(details);
}
/**
* If an HTTP Error code returned during AJAX request, it will be processed
* by this function. The default implementation is alert(code);
* Override it if you need.
*/
AjaxAnywhere.prototype.handleHttpErrorCode = function(code) {
var details = confirm("AjaxAnywhere default error handler. XMLHttpRequest HTTP Error code:" + code + " \n\n Would you like to view the response content in a new window?");
if (details) {
var win = window.open("", this.id + "_debug_window");
if (win != null) {
win.document.write("<html><body><xmp>" + this.req.responseText);
win.document.close();
win.focus();
} else {
alert("Please, disable your pop-up blocker for this site first.");
}
}
}
/**
* Override it if you need.
*/
AjaxAnywhere.prototype.handlePrevousRequestAborted = function() {
alert("AjaxAnywhere default error handler. INFO: previous AJAX request dropped")
}
/**
* If the HTML received in responce to AJAX request contains JavaScript that defines new
* functions/variables, they must be propagated to the proper context. Override this method
* to return the Array of function/variable names.
*/
AjaxAnywhere.prototype.getGlobalScriptsDeclarationsList = function(script) {
return null;
}
/**
* This function should be overridden by AjaxAnywhere user to implement client-side
* determination of zones to reload.
*
* If the form is submited with <input type=submit|image>, submitButton is a reference to the DHTML object. Otherwise - undefined.
*
* @Returns a comma separated list of zones to reload, or "document.all" to reload
* the whole page. Returns null if the request must be sent in traditional way
*
*/
AjaxAnywhere.prototype.getZonesToReload = function(url, submitButton) {
return this.getZonesToReaload();
// backward compatibility only
}
/**
* depreceted : wrond spelling : Reaload will be removed in later versions
*/
AjaxAnywhere.prototype.getZonesToReaload = function(url, submitButton) {
return "";
}
/**
* Override this method to implement a custom action
*/
AjaxAnywhere.prototype.onRequestSent = function () {
};
/**
* Override this method to implement a custom action
*/
AjaxAnywhere.prototype.onBeforeResponseProcessing = function () {
};
/**
* Override this method to implement a custom action
*/
AjaxAnywhere.prototype.onAfterResponseProcessing = function () {
};
/**
* Provides a default implementation from graceful degradation for getAJAX()
* calls location.href=url if XMLHttpRequest is unavailable, reloading the entire page .
*/
AjaxAnywhere.prototype.onGetAjaxNotSupported = function (url) {
location.href = url;
return false;
};
/**
* Provides a default implementation from graceful degradation for submitAJAX()
* calls form.submit() if XMLHttpRequest is unavailable, reloading the entire page
*/
AjaxAnywhere.prototype.onSubmitAjaxNotSupported = function (additionalPostData, submitButton) {
var form = this.findForm();
var actionAttrNode = form.attributes["action"];
var url = actionAttrNode == null?null:actionAttrNode.nodeValue;
var url_backup = url;
if (typeof additionalPostData != 'undefined' && additionalPostData != null) {
url += (url.indexOf("?") != -1) ? "&" : "?";
url += additionalPostData;
form.attributes["action"].nodeValue= url;
// only POST method allows sending additional
// date by altering form action URL.
form.setAttribute("method", "post");
}
this.submitOld(form,submitButton);
form.attributes["action"].nodeValue= url_backup;
return false;
};
/**
* submit the form in tradiditional way :
* @private
*/
AjaxAnywhere.prototype.submitOld = function (form,submitButton){
var submitHolder = null;
if (submitButton!=null && typeof submitButton!="undefined"){
submitHolder = document.createElement("input");
submitHolder.setAttribute("type","hidden");
submitHolder.setAttribute("name",submitButton.name);
submitHolder.setAttribute("value",submitButton.value);
form.appendChild(submitHolder);
}
if (typeof form.submit_old == "undefined")
form.submit();
else
form.submit_old();
if (submitButton!=null ){
form.removeChild(submitHolder);
}
}
// default instance.
ajaxAnywhere = new AjaxAnywhere();
ajaxAnywhere.bindById();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -