function Xajax()
{
if (xajaxDebug) this.DebugMessage = function(text) { alert("Xajax Debug:n " + text) };
this.workId = ''xajaxWork''+ new Date().getTime();
this.depth = 0;
//Get the XMLHttpRequest Object
this.getRequestObject = function()
{
if (xajaxDebug) this.DebugMessage("Initializing Request Object..");
var req;
try
{
req=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
req=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
req=null;
}
}
if(!req && typeof XMLHttpRequest != "undefined")
req = new XMLHttpRequest();
if (xajaxDebug) {
if (!req) this.DebugMessage("Request Object Instantiation failed.");
}
return req;
}
// xajax.$() is shorthand for document.getElementById()
this.$ = function(sId)//$是什麼?
{
return document.getElementById(sId);
}
// xajax.include(sFileName) dynamically includes an external javascript file
this.include = function(sFileName)
{
var objHead = document.getElementsByTagName(''head'');
var objScript = document.createElement(''script'');
objScript.type = ''text/javascript'';
objScript.src = sFileName;
objHead[0].appendChild(objScript);
}
// xajax.addHandler adds an event handler to an element
this.addHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
//eval的含義?
eval("this.$(''"+sElementId+"'').addEventListener(''"+sEvent+"'',"+sFunctionName+",false);");
}
else
{
eval("this.$(''"+sElementId+"'').attachEvent(''on"+sEvent+"'',"+sFunctionName+",fal**);");
}
}
// *ajax.removeHandler removes an event handler from an element
this.removeHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
eval("this.$(''"+sElementId+"'').removeEventListener(''"+sEvent+"'',"+sFunctionName+",false);");
}