5 Stimmen

innerHTML entfernt abschließenden Schrägstrich vom Bild-Tag

Das ist sehr merkwürdig. Hier ist eine schnelle Testfunktion:

function test_function(){
    code = '<img src="http://www.myimage.com/img.jpg" alt="image" />';
    alert(code);
    document.getElementById('test').innerHTML = code;
    alert(document.getElementById('test').innerHTML);
}

Wenn Sie den obigen Code ausführen, wird Folgendes angezeigt /> in der ersten Meldung, aber in der zweiten Meldung nicht, sie zeigt nur > . Es sieht also so aus, dass die Bewerbung bei .innerHTML wird der Schrägstrich entfernt. Haben Sie eine Idee, wie man dies verhindern kann? Ich brauche den Schrägstrich für die Validierung.

1 Stimmen

Welchen Doctype verwenden Sie?

0 Stimmen

Bei welchen Browsern tritt das Problem auf?

0 Stimmen

Wenn der Browser den Schrägstrich entfernt, ist er in diesem Doctype wahrscheinlich nicht erforderlich.

7voto

Marcel Korpel Punkte 21267

Die zweite Meldung zeigt Ihnen lediglich, was der Browser als interne Darstellung Ihres Bildelements verwendet. Sie brauchen den Schrägstrich nicht für die Validierung, da es bei der Validierung immer um die Quelle Ihrer Seite geht. Validierer führen kein JavaScript aus, das dem DOM dynamisch Elemente hinzufügt.

Tatsächlich behandeln die meisten Browser XHTML intern genauso wie HTML und nicht als XML-Darstellung Ihres Dokuments. Nur wenn Sie Ihr XHTML-Dokument mit dem MIME-Typ application/xhtml+xml , einige Browser werden Ihre Seite mit dem XML-Parser darstellen.

Siehe auch Ian Hickson's Artikel .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X