Question

Problème i rencontre avec outerHTML en utilisant le navigateur IE

si je dis:

txt="Update Complete!";
msg = sub.appendChild(d.createElement("p"));
msg.outerHTML = txt;

Il fonctionne très bien:

Mais si je dis

txt="1 Error:<ul><li>Some Error</li></ul>";
msg = sub.appendChild(d.createElement("p"));
msg.outerHTML = txt;

me donne une erreur de:

Message: Unknown runtime error
Line: 389
Char: 4
Code: 0
URI: http://10.1.1.16/schedule_calendar/js/validate.js

Ligne: 389 se rapporte à "msg.outerHTML = txt;"

Quelqu'un peut-il me aider avec celui-ci .. Merci à l'avance

Était-ce utile?

La solution

Pour certaines raisons, je ne sais pas, dans la plupart des cas de modification outerHTML n'est pas autorisé. Je devine que, c'est parce que lorsque vous modifiez la outerHTML d'un élément que vous remplacez en fait l'élément courant.

OMI, plus sûr pour remplacer un élément de modification de son outerHTML.

Dans votre cas, peut-être cela suffira:

ICI MISES À JOUR:

<html>
<head><title>Test</title></head>
<body>
<div>
    some content...
    <div id="sub"></div>
</div>
<script type="text/javascript">
window.onload = function(){
    var sub = document.getElementById('sub');
    var txt="<p>Update Complete!</p>";
    sub.innerHTML = txt;

    alert('test 1');

    txt="1 Error:<ul><li>Some Error</li></ul>";
    sub.innerHTML = txt;
}
</script>
</body>
</html>

Autres conseils

Quel est votre code cherche à atteindre? Dans les deux cas, vous faites:

  1. créer un nouvel élément p
  2. append l'élément de p à sub (qui je suppose est un élément lui-même ainsi)
  3. définir la outerHTML de l'élément p à un texte.

Vous pouvez tout aussi bien fait:

  1. créer une nouvelle textNode avec les données textuelles désirées
  2. append que pour childNodes de sub:

    sub.appendChild(document.createTextNode("Update Complete!"));

Ou, si sub est vide de toute façon, il suffit de faire:

sub.innerHTML = "Update Complete!";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top