Permet de savoir si une URL a été consultée en utilisant le « CSS History Hack ».
Pour fonctionner correctement, la fonction hasVisited() ne doit pas être appellée avant que la page ne soit chargée.
Vous devez utiliser l'évenement load de l'objet window pour vous assurer que la page soit prête.
function hasVisited(url) { var containerId = "hasVisitedContainerForTesting"; var container = document.getElementById(containerId); if(!container) { container = document.createElement("DIV"); container.id = containerId; container.style.display = "none"; document.body.appendChild(container); var styleSheet = document.styleSheets[0]; if(styleSheet.insertRule) { styleSheet.insertRule( "#"+ containerId +" a { text-decoration:underline !important; }", styleSheet.cssRules.length ); styleSheet.insertRule( "#"+ containerId +" a:visited { text-decoration:none !important; }", styleSheet.cssRules.length ); } else if(styleSheet.addRule) { styleSheet.addRule("#"+ containerId +" a", "text-decoration:underline !important"); styleSheet.addRule("#"+ containerId +" a:visited", "text-decoration:none !important"); } } var link = document.createElement("A"); link.href = url; link.innerHTML = url; container.appendChild(link); if(window.getComputedStyle) { style = window.getComputedStyle(link,null).textDecoration; } else if(link.currentStyle) { style = link.currentStyle.textDecoration; } container.removeChild(link); return (style=="none"); }
bool hasVisited ( string url )
Retourne TRUE si l'url a été consultée auparavant, ou FALSE dans le cas contraire.
Exemple #1 Exemple avec hasVisited()
var url = "http://code.seebz.net/"; if(!hasVisited(url)) { alert("Vous devriez aller voir le site code.seebz.net"); }
Exemple #2 Exemple avec hasVisited()
var isFacebookUser = function() { var urls = [ "http://www.facebook.com/home.php", "http://www.facebook.com/?ref=logo", "http://www.facebook.com/?ref=home" ]; for(var i=0, url; url=urls[i]; i++) { if(hasVisited(url)) { return true; } } return false; }(); if(isFacebookUser) { alert("Je t'ai grillé, tu utilises FaceBook !"); }
Commentaire(s)
Poster un commentaire