Es scheint, dass JavaScript bestimmte Sonderzeichen automatisch in HTML-Elemente konvertiert, wenn Inhalte über die Funktion innerHTML () ausgegeben werden. Dies ist ein Problem, da ich & lt; und & gt; ohne Umwandlung in GT; und lt;
Kann diese automatische Konvertierung verhindert, rückgängig gemacht oder ausgeführt werden? Bis jetzt, egal was ich mache, & lt; und & gt; werden immer automatisch in HTML-Entities kodiert.
Beispielcode:
%Vor%Beispiel für eine Abfragevariable:
%Vor%Ich habe herausgefunden, was vor sich geht. Es gibt keine einfache Möglichkeit, zu verhindern, dass innerHTML Sonderzeichen in HTML-Entitäten umwandelt, aber das Problem taucht auf, wenn der Inhalt eines DIV in die Zwischenablage kopiert wird (nur IE-JS) Um IE zu verwenden), habe ich nur die replace () -Funktion verwendet, um die HTML-Entitäten wieder in & lt; und & gt;.
Ich denke, Ihre Frage basiert auf einer falschen Prämisse. Mach einfach einen sehr einfachen Test:
%Vor%Wenn das funktioniert, dann ist das Problem nicht auf der JS-Seite, stattdessen verwenden Sie einige andere Komponenten in Ihrem System, die Ihre Zeichen HTML-codieren.
Sie sollten sich auf das konzentrieren, was Sie als Ergebnis erreichen wollen, und nicht auf die Art, dies zu tun. innerHTML () codiert, innerText () und textContent () codieren ebenfalls. Also sollten Sie Ihre Strings dekodieren, wenn Sie sie als & lt; oder & gt; zurück.
Sie können diese Funktion unescapeHTML () verwenden, um die gewünschten Ergebnisse zu erhalten.
%Vor%Ich hoffe, das hilft. Ich habe es von Prototype kopiert.
Tags und Links javascript html xhtml