/* Nowy obiekt HttpRequest */ function getXMLHttpRequest () { var request = false; try { /* Próba dla FF > 2/OPERA > 9/IE>7 */ request = new XMLHttpRequest(); request.overrideMimeType('text/xml'); } catch (error1) { try { /* Próba dla IE6 */ request = new ActiveXObject('Msxml2.XMLHTTP'); } catch (error2) { try { /* Próba dla IE 5 */ request = new ActiveXObject('Microsoft.XMLHTTP'); } catch (error3) { request = false; } } } return request; } req = getXMLHttpRequest (); //Stwóż obiekt HttpRequest /* Obiekt jądra */ var obj = { url : null, onInitialization : null, //Rozpoczynam Ładowanie onLoading : null, //Ładuje onLoaded :null, //Załadowano onError : null, //Błąd onComplete : null, //Odebrano onSucces : null, //Zakończono onInitializationHandled : false, //Rozpoczynam Ładowanie- WYkonano onLoadingHandled : false, //Ładuje- Wkonano onLoadedHandled : false, //Załadowano- Wkonano onCompleteHandled : false, //Odebrano- Wkonano onSuccesHandled : false //Zakończono- Wkonano } //Monitoruj stan obj.onProgress = function () { obj._onInitialization(); switch (req.readyState) { case 1: obj._onLoading(); break; case 2: obj._onLoaded(); break; case 3: obj._onComplete(); break; case 4: obj._onSucces(); break; } }; //Inicjacja obj._onInitialization = function () { if (obj.onInitializationHandled == true) return; obj.onInitializationHandled = true; obj.registerEvent('Initialization', req); }; //Ładowanie obj._onLoading = function () { if (obj.onLoadingHandled == true) return; obj.registerEvent('Loading', req); obj.onLoadingHandled = true; }; //Załadowane obj._onLoaded = function () { if (obj.onLoadedHandled == true) return; obj.registerEvent('Loaded', req); obj.onLoadedHandled = true; }; //Zakończono obj._onComplete = function() { if (obj.onCompleteHandled == true) return; obj.registerEvent('Complete', req); obj.onCompleteHandled = true; }; obj._onSucces = function () { if (obj.onSuccesHandled == true) return; if (req.status == 200) obj.registerEvent('Succes', req); else obj.registerEvent('Error', req); }; //Zarejestruj zdarzenie obj.registerEvent = function (event) { args = new Array(); if (typeof obj != 'object') return; if (typeof obj['on'+event] != 'function') return; for (i=1; i<arguments.length; i++) args.push(arguments[i]); obj['on'+event].apply(null, args); }; /* Obiekt myAjax*/ myAjax = new Object(); myAjax.get = function (arguments) { return myAjax.getResult('GET', arguments); }; /* Zwróć wynik */ myAjax.getResult = function(method, arguments) { //Sprawdz metodę odwołania if (typeof method == 'undefined' || method == null) method = 'GET'; //Sprawdz czy obekt XMLHttpRequest został skasowany jeśli nie to skasuj if (req != null) { delete req.onreadystatechange; req = null; } req = getXMLHttpRequest(); //Sprawdz czy można utwożyć obiekt jeśli tak to stwórz a jeśli nie to zwróć pusty wynik if (req == null) return null; //Sprawdz obiekt jądra if (obj == null) return null; //Przypisz argumenty myAjax.setArguments(arguments); //Sprawdz link if (obj.url == null || typeof obj.url == 'undefined') alert('daniel123'); //Moitoruj stan req.onreadystatechange = function () { obj.onProgress(); } //Nadaj wartości domyślne obj.onInitializationHandled = obj.onLoadingHandled = obj.onLoadedHandled = obj.onCompleteHandled = obj.onSuccesHandled = false; //Pobierz plik req.open("GET", obj.url); req.send(null); }; /* Przypisz arguenty */ myAjax.setArguments = function(arguments) { for (var a in arguments) { obj[a] = arguments[a]; } };
<script type="text/javascript" src="ajax.js"></script> <script type="text/javascript"> //<![CDATA[ function test() { document.getElementById('myj'); myAjax.get({ url : 'data.php', onInitialization: function(obj) {element.innerHTML = 'Inicjacja';}, onLoading: function(obj) {element.innerHTML = 'Ładowanie';}, onLoaded: function(obj) {element.innerHTML = 'Załadowano';}, onComplete: function(obj) {element.innerHTML = 'Odebrano';}, onSucces: function(obj) {element.innerHTML = obj.responseText;}, onError: function(obj) {element.innerHTML = 'Napotkano błąd: '+obj.status;} }); } //]]> </script> <div id="myj">Hehehehehehe</div> <input type="submit" value="Kliknij i sprawdz" onClick="test()">
Dziękuje za ocene