Utilisateur:Delhovlyn/msgNotifier.js
Apparence
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./// Zone personnalisable ///
var delai = 10; // (en secondes)
////////////////////////////
function verifMsgs(temps) {
makeRequest('http://fr.wikipedia.org/w/api.php?action=query&meta=userinfo&uiprop=hasmsg&format=xml');
setTimeout("verifMsgs()",temps);
}
boiteMsg = document.createElement('div');
boiteMsg.setAttribute('style', 'display:none; z-index:3; position: fixed; right:20px; bottom:0; display:block; background-color: #ffce7b; border: 1px solid #ffa500; border-bottom:0px; vertical-align:center; text-align:center; padding:10px; text-decoration:blink;');
boiteMsg.innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Nuvola_apps_email.png/25px-Nuvola_apps_email.png" alt="" width="25" height="25" longdesc="/wiki/Image:Nuvola_apps_email.png" /> Vous avez de <a href="/wiki/Discussion Utilisateur:' + mw.config.get('wgUserName') + '" style="font-weight:bold;">nouveaux messages</a> (<a href="/w/index.php?title=Discussion Utilisateur:' + mw.config.get('wgUserName') + '&diff=cur" style="font-weight:bold;">diff</a>).';
document.body.appendChild(boiteMsg);
$(function() { var delay = delai*1000; verifMsgs(delay); });
//####################################################
function makeRequest(url) {
var httpRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
httpRequest.open('GET', url, true);
httpRequest.send(null);
}
function alertContents(httpRequest) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
if (httpRequest.responseText.indexOf('messages=""') != -1) { // je sais, c'est pas propre.
boiteMsg.style.display = 'block';
} else {
boiteMsg.style.display = 'none';
}
}
}
}