Frage

Problem begegne ich mit Outerhtml mit IE-Browser

Wenn ich sage:

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

Es funktioniert:

Wenn ich aber sage

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

Gibt mir einen Fehler von:

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

Line: 389 bezieht sich auf "msg.outerHTML = txt;"

Kann mir jemand helfen mit diesem .. Vielen Dank im Voraus

War es hilfreich?

Lösung

Für einige Gründe, die ich nicht kenne, in den meisten Fällen zu modifizieren Outerhtml ist nicht erlaubt. Ich vermute, dass dies liegt daran, dass, wenn Sie die Outerhtml eines Elements modifizieren Sie das aktuelle Element tatsächlich ersetzt werden.

IMO, es sicherer, ein Element zu ersetzen, als angepaßter Outerhtml.

In Ihrem Fall, vielleicht wird dies genügen:

hier Neuigkeiten:

<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>

Andere Tipps

Was versucht, Ihren Code zu erreichen? In beiden Fällen müssen Sie tun:

  1. Erstellen Sie ein neues p Element
  2. append das p Element sub (was ich davon ausgehen, ist ein Element selbst auch)
  3. stellen Sie die outerHTML des p Element zu einem Text.

Sie könnten genauso gut gemacht haben:

  1. Erstellen Sie eine neue textNode mit dem gewünschten Textdaten
  2. append dass sub des childnodes:

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

Oder, wenn sub ist leer sowieso, einfach tun:

sub.innerHTML = "Update Complete!";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top