Author: tridge Date: 2005-08-05 19:36:15 +0000 (Fri, 05 Aug 2005) New Revision: 9136
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9136 Log: made the 'AJAJ' code portable to IE and Opera Modified: branches/SAMBA_4_0/swat/scripting/client/call.js Changeset: Modified: branches/SAMBA_4_0/swat/scripting/client/call.js =================================================================== --- branches/SAMBA_4_0/swat/scripting/client/call.js 2005-08-05 19:16:49 UTC (rev 9135) +++ branches/SAMBA_4_0/swat/scripting/client/call.js 2005-08-05 19:36:15 UTC (rev 9136) @@ -5,8 +5,39 @@ released under the GNU GPL Version 2 or later */ +var __call = new Object(); /* + we can't use the qooxdoo portability layer for this, as it assumes + you are using an XML transport, so instead replicate the portability + code for remote calls here. Don't look too closely or you will go + blind. +*/ +__call._activex = window.ActiveXObject && !(new QxClient).isOpera() ? true : false; +__call._activexobj = null; +__call._ok = QxXmlHttpLoader._http || QxXmlHttpLoader._activex; + +if (__call._activex) { + var servers = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; + for (var i=0; i<servers.length; i++) { + try { + var o = new ActiveXObject(servers[i] + ".XMLHTTP"); + __call._activexobj = servers[i]; + o = null; + } catch(ex) {}; + }; +}; + +/* + return a http object ready for a remote call +*/ +function __http_object() { + return __call._activex ? + new ActiveXObject(__call._activexobj + ".XMLHTTP") : + new XMLHttpRequest(); +} + +/* usage: server_call(url, func, callback, ...); @@ -18,7 +49,7 @@ object. 'callback' may be null. */ function server_call(url, func, callback) { - var req = new XMLHttpRequest(); + var req = __http_object(); req.open("POST", url, true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); var args = new Object();
