[Lutinweb-commits] r36 - trunk/lutinrss/src/main/webapp
Author: tchemit Date: 2008-05-15 22:11:45 +0000 (Thu, 15 May 2008) New Revision: 36 Modified: trunk/lutinrss/src/main/webapp/rssinclude.js Log: mutualisation du code javascript avec la methode getJs amelioration du script : * forceReload est aussi un attribut * permettre ?\195?\160 l'url de contenir un ? * utilisation function anonyme pour le window.load Modified: trunk/lutinrss/src/main/webapp/rssinclude.js =================================================================== --- trunk/lutinrss/src/main/webapp/rssinclude.js 2008-05-15 22:11:24 UTC (rev 35) +++ trunk/lutinrss/src/main/webapp/rssinclude.js 2008-05-15 22:11:45 UTC (rev 36) @@ -1,54 +1,42 @@ -function rssincludeUpdateDiv(div, background, forceReload) { - // mettre background a false est utile lorsque l'on appelle la methode - // depuis une fenetre que l'on ferme ensuite +function rssincludeUpdateDiv(div, background) { + // mettre background a false est utile lorsque l'on appelle la methode + // depuis une fenetre que l'on ferme ensuite + var serlvetUrl = "%1$1"; + win = window; + var xhr = null; + var error=null; + var feedName = div.getAttribute("feedName"); + if (!feedName) // pas de feed name, fatal error + error = "<span class='feed-error'>Aucun feed name detecte...</span>"; + else if(win.XMLHttpRequest) // Firefox, Opera detected + xhr = new win.XMLHttpRequest(); + else if(win.ActiveXObject) // Internet Explorer detected + xhr = new win.ActiveXObject("Microsoft.XMLHTTP"); + else // XMLHttpRequest non supporte par le navigateur + error = "<span class='feed-error'>Votre navigateur ne supporte pas les objets XMLHTTPRequest...</span>"; + if (!!error) { div.innerHTML = error; return; } + + var nbItem = div.getAttribute("nbItem"); + var feedRepr = div.getAttribute("feedRepr"); + var forceReload = div.getAttribute("forceReload"); + var url = serlvetUrl+(serlvetUrl.indexOf('?')>-1?'&':'?')+"feedName=" + escape(feedName); + if (!!nbItem) {url += '&nbItem=' + escape(nbItem);} + if (!!feedRepr) {url += '&feedRepr=' + escape(feedRepr);} + if (!!forceReload) {url += '&forceReload=true';} - var serlvetUrl = "http://rssinclude/lutinrss-1.0/RSSServlet"; - - // if (!win) { - win = window; - // } - - var xhr = null; - if(win.XMLHttpRequest) // Firefox - xhr = new win.XMLHttpRequest(); - else if(win.ActiveXObject) // Internet Explorer - xhr = new win.ActiveXObject("Microsoft.XMLHTTP"); - else { // XMLHttpRequest non supporté par le navigateur - var error = "<span class='feed-error'>Votre navigateur ne supporte pas les objets XMLHTTPRequest...</span>"; - } - - if (error) { - div.innerHTML = error; - } else { - div.innerHTML = "Loading " + feedName; - - var feedName = div.getAttribute("feedName"); - var url = serlvetUrl + "?feedName=" + escape(feedName); - - var nbItem = div.getAttribute("nbItem"); - if (!!nbItem) {url += '&nbItem=' + escape(nbItem);} - - var feedRepr = div.getAttribute("feedRepr"); - if (!!feedRepr) {url += '&feedRepr=' + escape(feedRepr);} - if (!!forceReload) {url += '&forceReload=true';} - - xhr.open("GET", url, !!background); - xhr.onreadystatechange = function() { - if(xhr.readyState == 4) { - div.innerHTML = xhr.responseText; - } - } - xhr.send(null); - } + xhr.container=div; + xhr.open("GET", url, !!background); + xhr.onreadystatechange = function() { + if(this.readyState == 1) this.container.innerHTML = "Chargement du flux '"+this.container.getAttribute("feedName")+"'"; + if(this.readyState == 4) this.container.innerHTML = this.responseText; + } + xhr.send(null); } - -function rssinclude() { - var divs = document.getElementsByName("rssinclude"); - var i = 0; - while (i < divs.length) { - var div = divs[i++]; - rssincludeUpdateDiv(div, true); - } -} - -window.addEventListener( 'load', rssinclude, true ); +window.addEventListener( 'load', function () { + var divs = document.getElementsByName("rssinclude"); + var i = 0;var max=divs.length; + while (i < max) { + var div = divs[i++]; + rssincludeUpdateDiv(div, true); + } +},true);
participants (1)
-
tchemit@users.labs.libre-entreprise.org