Lieber Struppi,
Danke für Deine Tipps.
Das Problem ist vermutlich, dass du quasi live innerHTML mit einer regulären Ausdruck tauschen möchtest.
Also wird bei
var HTML = element.innerHTML;
der Variablen HTML nur eine Referenz auf die Eigenschaft "innerHTML" des Objektes "element" übergeben, anstatt der Inhalt dieser Eigenschaft als String?
Ich muss das einmal Prüfen. Folgende Seite sollte Auskunft geben können:
<html><head><title>test</title>
<style type="text/css">
#original { background: green; }
#ersetzung { background: red; }
</style>
<script type="text/javascript">
function test(testobjekt) {
var HTML = testobjekt.innerHTML;
alert('innerHTML vorher:\n'+testobjekt.innerHTML);
alert('Wert der Variablen "HTML":\n'+HTML+'\n\nVariable "HTML" ist vom Typ: '+typeof(HTML));
testobjekt.innerHTML = '<p id="ersetzung">Dieser Absatz wurde eingefügt</p>';
alert('innerHTML hachher:\n'+testobjekt.innerHTML);
alert('Wert der Variablen "HTML":\n'+HTML);
}
</script>
</head>
<body>
<div onclick="test(this);"><p id="original">Dieser Absatz kann durch einen Klick verändert werden!</p></div>
</body>
</html>
Wie man sieht, ist die Variablen HTML tatsächlich ein String (auch im IE!) und wird auch durch ein Verändern von innerHTML des Elementes, aus dem sie ursprünglich ihren Wert bezog, nachträglich nicht manipuliert!
Warum kann also dieses Schandwerk von IE nicht einfach das tun, was eine syntaktisch und logisch korrekte Programmierung verlangt?!!
Liebe Grüße aus Ellwangen,
Felix Riesterer.