first commit
This commit is contained in:
181
stud/overlib/ajaxcontentmws.js
Normal file
181
stud/overlib/ajaxcontentmws.js
Normal file
@ -0,0 +1,181 @@
|
||||
/*
|
||||
ajaxcontentmws.js - Foteos Macrides (author and Copyright holder)
|
||||
Initial: June 22, 2006 - Last Revised: March 2, 2007
|
||||
Wrapper function set for getting and using the responseText and / or
|
||||
responseXML from a GET or POST XMLHttpRequest, which can be used to
|
||||
generate dynamic content for overlib or overlib2 calls, or to modify
|
||||
the content of a displayed STICKY popup dynamically.
|
||||
|
||||
For GET Use:
|
||||
onmouseover="return OLgetAJAX(url, command, delay, css);"
|
||||
onmouseout="OLclearAJAX();" (if delay > 0)
|
||||
or:
|
||||
onclick="OLgetAJAX(url, command, 0, css); return false;"
|
||||
or:
|
||||
onload="OLgetAJAX(url, command, 0, css);
|
||||
|
||||
Where:
|
||||
url (required)
|
||||
is a quoted string, or unquoted string variable name or array entry, with
|
||||
the full, relative, or partial URL for a file or a server-side script (php,
|
||||
asp, or cgi, e.g. perl), and may have a query string appended (e.g.,
|
||||
'http://my.domain.com/scripts/myScript.php?foo=bar&life=grand').
|
||||
And:
|
||||
command (required)
|
||||
is the function reference (unquoted name without parens) of a function to
|
||||
be called when the server's response has been received (it could instead be
|
||||
an inline function, i.e., defined within the 2nd argument, or a quoted string
|
||||
for a function with parens and any args)
|
||||
And:
|
||||
delay (may be omitted unless css is included)
|
||||
is an unquoted number indicating the number of millisecs to wait before
|
||||
initiating an XMLHttpRequest GET request. It should be 0 when using onclick
|
||||
or onload, but may be a modest value such as 300 for onmouseover to avoid
|
||||
any chatter of requests. When used with onmouseover, include:
|
||||
onmouseout="OLclearAJAX();"
|
||||
to clear the request if the user does not hover for at least that long. If
|
||||
the popup is not STICKY, include an nd or nd2 call, e.g.,
|
||||
onmouseout="OLclearAJAX(); nd();"
|
||||
And:
|
||||
css (may be omitted)
|
||||
is a quoted string with the CSS class (e.g. 'ovfl510' for
|
||||
.ovfl510 {width:510px; height:145px; overflow:auto; ...} ) for a div to
|
||||
encase the responseText and set the width, height and scrollbars in the
|
||||
main text area of the popup, or the unquoted number 0 if no encasing div
|
||||
is to be used.
|
||||
|
||||
For POST substitute OLpostAJAX(url, qry, command, delay, css);
|
||||
Where
|
||||
qry (required)
|
||||
is the string to be posted, typically a query string (without a lead ?)
|
||||
and the other arguments are as above.
|
||||
|
||||
See http://www.macridesweb.com/oltest/AJAX.html for more information.
|
||||
*/
|
||||
|
||||
// Initialize our global variables for this function set.
|
||||
var OLhttp=false,OLcommandAJAX=null,OLdelayidAJAX=0,OLclassAJAX='',
|
||||
OLresponseAJAX='',OLdebugAJAX=false;
|
||||
|
||||
// Create a series of wrapper functions (e.g. OLcmdT#() for ones which
|
||||
// use OLhttp.responseText via the OLresponseAJAX global, and OLcmdX#()
|
||||
// for ones which use OLhttp.responseXML) whose reference (unquoted name
|
||||
// without parens) is the 2nd argument in OLgetAJAX(url,command,delay,css)
|
||||
// calls. This one is for the first example in the AJAX.html support
|
||||
// document, to use the OLresponseAJAX global as the lead argument for an
|
||||
// overlib popup. Put your functions in the head, or in another imported
|
||||
// .js file, so that they will not be affected by updates of this .js file.
|
||||
//
|
||||
function OLcmdExT1() {
|
||||
return overlib(OLresponseAJAX, TEXTPADDING,0, CAPTIONPADDING,4,
|
||||
CAPTION,'Example with AJAX content via <span '
|
||||
+'class="yellow">responseText</span>. Popup scrolls with the window.',
|
||||
WRAP, BORDER,2, STICKY, CLOSECLICK, SCROLL,
|
||||
MIDX,0, RELY,100,
|
||||
STATUS,'Example with AJAX content via responseText of XMLHttpResponse');
|
||||
}
|
||||
|
||||
// Alert for old browsers which lack XMLHttpRequest support.
|
||||
function OLsorryAJAX() {
|
||||
alert('Sorry, AJAX is not supported by your browser.');
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check 2nd arg for function
|
||||
function OLchkFuncAJAX(ar){
|
||||
var t=typeof ar;return (((t=='function'))||((t=='string')&&(/.+\(.*\)/.test(ar))));
|
||||
}
|
||||
|
||||
// Alert for bad 2nd argument
|
||||
function OLnotFuncAJAX(m) {
|
||||
if(over)cClick();
|
||||
alert('The 2nd arg of OL'+m+'AJAX is not a function reference, nor an inline function, '
|
||||
+'nor a quoted string with a function indicated.');
|
||||
return OLclearAJAX();
|
||||
}
|
||||
|
||||
// Alert for indicating an XMLHttpRequest network error.
|
||||
function OLerrorAJAX() {
|
||||
alert('Network error '+OLhttp.status+'. Try again later.');
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns a new XMLHttpRequest object, or false for older browsers
|
||||
// which did not yet support it. Called as OLhttp=OLnewXMLHttp() via
|
||||
// the OLgetAJAX(url,command,delay,css) wrapper function.
|
||||
//
|
||||
function OLnewXMLHttp() {
|
||||
var f=false,req=f;
|
||||
if(window.XMLHttpRequest)eval(new Array('try{',
|
||||
'req=new XMLHttpRequest();','}catch(e){','req=f;','}').join('\n'));
|
||||
/*@cc_on @if(@_jscript_version>=5)if(!req)
|
||||
eval(new Array('try{','req=new ActiveXObject("Msxml2.XMLHTTP");',
|
||||
'}catch(e){','try{','req=new ActiveXObject("Microsoft.XMLHTTP");',
|
||||
'}catch(e){','req=f;','}}').join('\n')); @end @*/
|
||||
return req;
|
||||
}
|
||||
|
||||
// Handle the OLhttp.responseText string from the XMLHttpRequest object.
|
||||
function OLdoAJAX() {
|
||||
if(OLhttp.readyState==4){
|
||||
if(OLdebugAJAX)alert(
|
||||
'OLhttp.status = '+OLhttp.status+'\n'
|
||||
+'OLhttp.statusText = '+OLhttp.statusText+'\n'
|
||||
+'OLhttp.getAllResponseHeaders() = \n'
|
||||
+OLhttp.getAllResponseHeaders()+'\n'
|
||||
+'OLhttp.getResponseHeader("Content-Type") = '
|
||||
+OLhttp.getResponseHeader("Content-Type")+'\n');
|
||||
if(!OLhttp.status||OLhttp.status==200){
|
||||
OLresponseAJAX=OLclassAJAX?'<div class="'+OLclassAJAX+'">':'';
|
||||
OLresponseAJAX += OLhttp.responseText;
|
||||
OLresponseAJAX += OLclassAJAX?'</div>':'';
|
||||
if(OLdebugAJAX)alert('OLresponseAJAX = \n'+OLresponseAJAX);
|
||||
OLclassAJAX=0;
|
||||
return (typeof OLcommandAJAX=='string')?eval(OLcommandAJAX):OLcommandAJAX();
|
||||
}else{
|
||||
OLclassAJAX=0;
|
||||
return OLerrorAJAX();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Actually make the request initiated via OLgetAJAX or OLpostAJAX, or
|
||||
// invoke a "permission denied" alert if a cross-domain URL was used.
|
||||
function OLsetAJAX(url,qry) {
|
||||
qry=(qry||null);var s='',m=(qry)?'POST':'GET';
|
||||
OLdelayidAJAX=0;eval(new Array('try{','OLhttp.open(m,url,true);',
|
||||
'}catch(e){','s=e','OLhttp=false;','}').join('\n'));if(!OLhttp){
|
||||
alert(s+'\n(Cross-domain access not permitted)');return false;}if(qry)
|
||||
OLhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
|
||||
OLhttp.onreadystatechange=OLdoAJAX;
|
||||
OLhttp.send(qry);
|
||||
}
|
||||
|
||||
// Clear or abort any delayed OLsetAJAX call or pending request.
|
||||
function OLclearAJAX() {
|
||||
if(OLdelayidAJAX){clearTimeout(OLdelayidAJAX);OLdelayidAJAX=0;}
|
||||
if(OLhttp&&!OLdebugAJAX){OLhttp.abort();OLhttp=false;}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Load a new XMLHttpRequest object into the OLhttp global, load the
|
||||
// OLcommandAJAX and OLclassAJAX globals, and initiate a GET request
|
||||
// via OLsetAJAX(url) to populate OLhttp.
|
||||
function OLgetAJAX(url,command,delay,css) {
|
||||
if(!OLchkFuncAJAX(command))return OLnotFuncAJAX('get');
|
||||
OLclearAJAX();OLhttp=OLnewXMLHttp();if(!OLhttp)return OLsorryAJAX();
|
||||
OLcommandAJAX=command;delay=(delay||0);css=(css||0);OLclassAJAX=css;
|
||||
if(delay)OLdelayidAJAX=setTimeout("OLsetAJAX('"+url+"')",delay);
|
||||
else OLsetAJAX(url);
|
||||
}
|
||||
|
||||
// Load a new XMLHttpRequest object into the OLhttp global, load the
|
||||
// OLcommandAJAX and OLclassAJAX globals, and initiate a POST request
|
||||
// via OLsetAJAX(url,qry) to populate OLhttp.
|
||||
function OLpostAJAX(url,qry,command,delay,css) {
|
||||
if(!OLchkFuncAJAX(command))return OLnotFuncAJAX('post');
|
||||
OLclearAJAX();OLhttp=OLnewXMLHttp();if(!OLhttp)return OLsorryAJAX();
|
||||
qry=(qry||0);OLcommandAJAX=command;delay=(delay||0);css=(css||0);OLclassAJAX=css;
|
||||
if(delay)OLdelayidAJAX=setTimeout("OLsetAJAX('"+url+"','"+qry+"')",delay);
|
||||
else OLsetAJAX(url,qry);
|
||||
}
|
Reference in New Issue
Block a user