2016-12-23 1 views
-4

la fonction suivanteEn utilisant innerHTML pour HTML partielle

<script> 
function new_par() 
{ 
var beginning="<input id="; 
document.getElementById("debug").innerHTML=beginning; 
} 
</script> 

produit pas de sortie, mais si je supprime le signe « < », il le fait. Vraisemblablement le javascript évite une sortie qui détruirait la page html, mais y aurait-il de toute façon forcer la sortie?

+0

conjecture sauvage: Votre javascript sortie en HTML plutôt que du texte brut? –

+1

Veuillez formater votre code correctement en ajoutant une nouvelle ligne avant et après, en le mettant en surbrillance, et en appuyant sur Ctrl + K. – Carcigenicate

+0

Dans la source html il n'y a rien. –

Répondre

0

Vous l'attribuez à la propriété innerHTML d'un noeud. Lorsque vous branchez la chaîne dans le DOM, elle essaie de l'analyser comme s'il s'agissait de HTML. Si vous deviez simplement l'ajouter en tant que nœud de texte, il apparaîtrait.

var beginning="<input id=''"; 
document.body.textContent = beginning; 

https://jsfiddle.net/2patzyo1/

Modifier: à la recherche de nouveau à votre question, si vous êtes essaie d'obtenir l'élément d'entrée à apparaître sur la page, la chaîne que vous utilisez est pas bon HTML parce que vous n'avez jamais fermé le tag. Lorsque le navigateur s'y lance, il essaie de l'analyser et de le restituer, mais comme il n'est pas valide, il abandonne. Cela fonctionne:

var beginning="<input id=''>"; 
document.body.innerHTML = beginning; 

https://jsfiddle.net/2patzyo1/1/