Javascript

Dernière mise à jour: ven 12 mar 2010

hasVisited()

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.

Source

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");
}

Syntaxe

bool hasVisited ( string url )

Arguments

  1. src - L'URL à tester.

Valeurs de retour

Retourne TRUE si l'url a été consultée auparavant, ou FALSE dans le cas contraire.

Exemples

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