web-dev-qa-db-fra.com

Sortie Javascript en ligne

En javascript, supposons que vous ayez ce morceau de code:

<div>
    <script type="text/javascript">var output = 'abcdefg';</script>
</div>

Est-il possible de simplement "faire écho" (en utilisant la terminologie PHP) le contenu de output dans #test? C'est-à-dire, pour sortir une chaîne en ligne, en supposant que vous n'avez aucun moyen standard de parcourir ou de sélectionner à partir du DOM?

document.write("..."); écrit le contenu de output, mais ce faisant, il remplace le document entier par output.

La solution que je recherche doit fonctionner de la même manière que PHP echo: écris le résultat dans le document en ligne.

10
dclowd9901

"Kosher" code à part, oui.

document.write()

7
jerluc

Vous devez utiliser document.write[docs] :

<div id="test">
    <script type="text/javascript">document.write('abcdefg');</script>
</div>  

D&EACUTE;MO

Avec l'avertissement, cela ne fonctionne pas dans les documents XHTML. Voir la documentation pour plus de détails.

10
Felix Kling

Dans les navigateurs standard:

document.getElementByID("test").textContent = output;

Pour une prise en charge plus étendue, vous pouvez utiliser text in jQuery (ou la méthode équivalente si votre bibliothèque de choix):

$('#test').text(output);
5
Matthew Flaschen

Je sais que c'est une vieille question, mais si quelqu'un cherche encore, voici une fonction pratique qui fait le travail.

function echo(text)
{
    document.body.appendChild(document.createElement("div")).appendChild(document.createTextNode(text));
}
1
Relaxing In Cyprus

Vous pourriez écrire quelque chose comme:

<div id="test">
  <script>
    document.getElementById('test').innerHTML = "stuff";
    //this line only changes content in the div with id="test", not the whole dom
  </script>
</div>

Mais vous devriez éviter de mettre un script dans une div car il pourrait être écrasé.

1
Julien Ducro

Si votre code est dans le div, alors document.write('abcdefg') est le bon choix pour insérer quelque chose en ligne au moment de l'exécution.

Ou, si votre code n'est pas dans la division, vous pouvez le faire:

<div id="test">
</div>

<script type="text/javascript">
var output = 'abcdefg';
document.getElementById("test").innerHTML = output;
</script>

Vous devrez vous assurer que votre code s'exécute APRÈS que la page soit chargée et que la div soit présente.

1
jfriend00

console.log ()

http://getfirebug.com/logging

également pris en charge en chrome et c.-à-d. 9 .. faites attention aux versions arrières, vous obtiendrez ie8 et plus bas, je pense ...

0
Kieran