11496 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous.

Voila je suis en train de réaliser un site où a un moment donné je dois afficher un numéro de téléphone via une variable smarty.
Mon problème est que je voudrais le cacher par défaut pour éviter le spam bien sur.

J'ai essayé de faire ça en JavaScript et voila pour l'instant ce que ça donne :

function affichenumero (numero) 
		{
			var tel = document.getElementById("tel");
			tel.innerHTML = numero ;
		}


et à l'endroit ou je veux l'afficher :

<button id="tel" onclick="affichenumero('{$r.telephone}') ;">Par téléphone</button>


Le problème c'est bien sûr que le numéro est directement visible dans le code source.

Auriez vous une solution à me proposer ?

merci d'avance.
Tu peux utiliser Ajax. Personnellement, dès que j'utilise Ajax, j'utilise une fonction toute faite que j'ai écrite une fois et qui me facilite grandement le boulot:
function ajaxRequest(url,type,params) {
	if(type===undefined) var type='GET';
	if(type=='GET') params=null;
	var http=new XMLHttpRequest();
	http.open(type,url,false);
	http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	http.onreadystatechange=function(){if(http.readyState==4 && http.status==200) ajaxResponse=http.responseText;};
	http.send(params);
	return ajaxResponse;
}

Après, ça dépend de comment tu veux protéger ton numéro, tu peux juste le stocker dans un fichier texte puis l'appeller avec ajax:
numero.txt:
06.XX.XX.XX.XX

numero.html (partie html):
<button id="tel" onclick="affichenumero();">Par téléphone</button>

function affichenumero() {
	 var numero=ajaxRequest('./numero.txt');
	 document.getElementById('tel').innerHTML=numero;
}

Modifié par juliendargelos (18 Mar 2014 - 13:50)