AJAX - The Complete Reference

(avery) #1

422 Part II: Developing an Ajax Library^


var callback = function()
{AjaxTCR.comm._handleIFrameResponse(request, iframe);};
/* register callback to load of iframe */
if(window.attachEvent)
iframe.attachEvent("onload", callback);
else
iframe.addEventListener("load", callback, false);
/* if file upload trigger set up target and submit upload */
if (request.hasFile)
{
request.serializeForm.target = iframe.id;
request.serializeForm.submit();
} /* otherwise alternate transport request */
else if (request.method.toUpperCase() == "GET")
{
/* add optional transport indication */
if (request.transportIndicator)
{
if (request.url.indexOf("?") > -1)
request.url += "&"+AjaxTCR.comm.DEFAULT_TRANSPORT_HEADER+"="+
AjaxTCR.comm.DEFAULT_IFRAME_TRANSPORT_VALUE;
else
request.url += "?"+AjaxTCR.comm.DEFAULT_TRANSPORT_HEADER+"="+
AjaxTCR.comm.DEFAULT_IFRAME_TRANSPORT_VALUE;
}
/* send request */
iframe.src = request.url;
}
else
{ /* POST request */
/* make a page with a form copying our payload into */
var ifrForm = makeIframeForm(iframe, request);

/* submit the form to trigger the request */
ifrForm.submit();
}

function makeIframeForm(ifr, request)
{
var url = request.url;
var payload = request.payload;
var ifrDoc = null;
var ifrWindow = ifr.contentWindow || ifr.contentDocument;
if (ifrWindow.document)
ifrDoc = ifrWindow.document;
else
ifrDoc = ifrWindow;

/* if we lack an HTML document make it */
if (!ifrDoc.body)
{
var html = ifrDoc.createElement("HTML");
ifrDoc.appendChild(html);
var head = ifrDoc.createElement("HEAD");
Free download pdf