11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, actuellement j'ai une fonction JS :


function confirme(message, lien) {

	if(confirm(message)) {
		location.href = lien;
	}
}


Il s'agit d'une fonction dont je me sers pour avoir une demande de confirmation au click sur un lien. Je l'applique comme ceci :


<a href='http://www.google.fr' onclick='confirme("Etes-vous sûr de vouloir aller sur google ?", "http://www.google.fr")> Google </a>


J'aimerais savoir s'il existe une solution me permettant de ne pas avoir à répéter l'URL du lien dans le code (et en le gardant dans le href) ?

Merci
Modifié par Sol (08 Apr 2008 - 13:55)
Salut,

this.href

this représente l'élément HTML sur lequel l'evenement est appliqué.
Modifié par skywalk3r (08 Apr 2008 - 14:24)
Je sais mais j'ai essayé ceci :


function confirme(message) {



	if(confirm(message)) {

		location.href = this.href;

	}

}



Ce n'a pas l'air de fonctionner...
Modifié par Sol (08 Apr 2008 - 15:47)
Bonjour,

En reprenant ton première exemple (le this correspond bien au lien cliqué) :

a écrit :
<a href='http://www.google.fr' onclick='confirme("Etes-vous sûr de vouloir aller sur google ?", this.href)> Google </a>


En ce qui concerne ton deuxième exemple, le this correspond à l'objet function ("confirme") et non au lien cliqué.

Il va donc falloir à avoir recours à "quelques artifices" afin que le this se réfère au lien cliqué. A partir de là, je laisse le soin à d'autres intervenants de t'expliquer la chose (n'étant pas le mieux placé pour te l'expliquer correctement).

Bonne continuation.
Romain