All pastes #471078 Raw Edit

Untitled

public javascript v1 · immutable
·published 2007-05-04 18:22 UTC
rendered paste body
/**	 * Genererer og returnerer et nytt XMLHttpRequest objekt.	 *	 * Denne metoden oppretter under første kjøring et XMLHttpRequest objekt,	 * og bruker dette i ettertid til å lage nye objekter ut i fra. Altså, det	 * går ikke igjennom deteksjonsmølla mer enn en gang, men gjennbruker det objektet	 * den laget i starten.	 *	 * @return {XMLHttpRequest | null}	Nytt XMLHttpRequest objekt, eller null hvis manglende browserstøtte	 */	getXhrObject: (function() {		// Microsoft Acitve X kontrollere		var xhro = undefined, i;		var msxml = [				'MSXML2.XMLHTTP.3.0', 				'MSXML2.XMLHTTP', 				'Microsoft.XMLHTTP'       ];				var initXhro = function() { // Setter XMLHttpRequest object			try {				xhro = new window.XMLHttpRequest();			} catch (e) {				// Antageligvis IE .. prøver forskjellige Acitve X kontrollere				for ( i = 0, len = msxml.length; i < len; ++i ) {					try {						xhro = new ActiveXObject(msxml[i]);						break;					}					catch(e) {}				}			}			// Sjekker om vi har fått ut et objekt, eller om vi skal sette xhro til null som et signal på at			// vi har prøvd, men ikke fått tak i et.			if ( xhro === undefined ) {				xhro = null;			}		};		return function() {			var F = function() {};			// Sjekker om vi har prøvd å opprette et XMLHttpRequest objekt før, hvis ikke prøver vi å generere ett			if ( xhro === undefined ) {				initXhro();			}						// Sjekker om vi har et XMLHttpRequest eller ikke.. Hvis vi har et returnerer vi en kopi av dette objektet			if ( xhro !== null ) {				F.prototype = xhro;				return new F();			}			return null; // Vi har ikke klart å opprette et XMLHttpRequest object		};	})()