Comment passer une string en argument en JS?

Fermé
exotyk Messages postés 2 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 16 janvier 2012 - Modifié par exotyk le 16/01/2012 à 17:29
exotyk Messages postés 2 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 16 janvier 2012 - 16 janv. 2012 à 18:42
Bonjour,

Voilà, je suis capable de passer la variable i (un chiffre) comme argument à la fonction Javascript openchannel(x), cependant je n'arrive pas à passer la variable x (une string)...
J'ai mis une alert sur la fonction openchannel pour vérifier si le code était exécuté, et rien ne se passe à moins de remplacer "<a href='javascript:openchannel(" + x + ");'>" par "<a href='javascript:openchannel(" + i + ");'>"... j'ai tenté d'utiliser les escape characters en faisant à la place: "<a href='javascript:openchannel(\'" + x + "\');'>" afin de passer une string proprement, cependant cela ne fonctionne pas plus; quand je passe ma souris par-dessus le lien j'obtiens en bas dans mon navigateur (Chrome) ceci: javascript:openchannel(
... comme si je n'arrivais pas à faire agir \' tel que demandé.

Voici mes 2 fonctions, updatekeywords() étant éxécuté en premier:



function openchannel(x)
{
alert("trying to open: " + x);
}


function updatekeywords()
{
document.getElementById("keywords").innerHTML = "";
var message = document.getElementById("tcontent").value;
var word=message.split(" ");
var z = 32;

for (i=0;i<=z;i++){
if (word[i]){
var x1 = word[i];
var x = x1.toString();
document.getElementById("keywords").innerHTML += "<a href='javascript:openchannel(" + x + ");'>" + x + "</a> ";
}
}

}






Un autre exemple (celui-ci est le code complet de la page) reprenant la même syntaxe et le même problème:




<html>
<head>


<script type="text/javascript">
function openchannel(x)
{
alert("trying to open: " + x);
}
</script>



<script type="text/javascript">
function fx()
{
var x = "cobra";
document.getElementById("keywords").innerHTML += "<a href='javascript:openchannel(" + x + ");'>" + x + "</a>  ";
}
</script>



</head>

<body>
<input type="button" onClick="fx()" value="test"><br>
<span id="keywords"></span>



</body>
</html>



Lorsque l'on clique sur le lien cobra, mon but est que la fonction openchannel(x) ouvre une box d'alerte mentionnant "trying to open: cobra". Je ne comprends pas, c'est pourtant tout simple...
A voir également:

1 réponse

exotyk Messages postés 2 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 16 janvier 2012
16 janv. 2012 à 18:42
Ok j'ai finalement trouvé, je devais mettre les guillemets en caractères ASCII pour encadrer mon argument en tant que string:
"<a href='javascript:openchannel("" + x + "");'>"
0