Django. Jquery. Escape-Zeichenfolge mit Anführungszeichen Fehler

8

In einem kleinen Forum kann jeder Benutzer Beiträge speichern. Manchmal enthalten diese Beiträge Wörter, die von Anführungszeichen umgeben sind (""). Das gibt mir einen Fehler, wenn ich versuche, diese Zeichenfolgen mit Javascript zu behandeln.

Ich habe einen jquery-Code geschrieben, der die django-Variable wie folgt verwendet:

%Vor%

Wenn ich es als "sicher" markiere, gibt mir Javascript einen Syntaxfehler:

%Vor%

Das ist logisch, weil JavaScript die Anführungszeichen so versteht:

%Vor%

Also, wenn ich es nicht als "sicher" markiere und django dem Text entkommen lassen möchte, gibt es mir keinen Fehler, aber der Text sieht so aus:

%Vor%

Ich weiß nicht, was zu tun ist, und ich denke, dass es nicht einfach sein kann, wenn ich die JavaScript-Variable mit einfachen Anführungszeichen deklariere, werde ich das gleiche Problem haben, wenn der Benutzer einen Text mit einfachen Anführungszeichen schreibt. Wenn ich eine Regex verwende, um doppelte Anführungszeichen zu ersetzen und den Text nicht als "text | safe" zu markieren, werden andere Tags mit Escapezeichen versehen und der Text ist voll von "& lt; br / & amp; gt" usw.

Ich habe eine Idee, die vielleicht funktioniert, aber hässlich ist und wahrscheinlich nicht die beste Option: Fügen Sie den Text in ein <p class = "hidden"> -Tag ein und rufen Sie ihn dann mit jquery auf.

Die Frage ist also, wie löse ich das? Gibt es einen besseren Weg? Vielen Dank im Voraus für Ihre Hilfe.

BEARBEITEN : Ich habe eine Runnable erstellt, um sie zu erklären es ist besser.

    
alejoss 08.08.2014, 21:21
quelle

2 Antworten

12

Verwenden Sie escapejs Filter. Beispiel:

%Vor%     
Arti 09.09.2014 10:37
quelle
2

Ok, ich habe eine Teillösung gefunden, hoffe, es hilft jemandem in der Zukunft. Es ist keine elegante Lösung, also, wenn jemand eine bessere Option hat, wird es willkommen sein.

Ich habe den Text mit einem "zitierten" Wort in ein verstecktes HTML-Tag eingefügt.

%Vor%

es funktioniert. Aber es gibt vielleicht eine bessere Option mit Javascript und / oder Python.

    
alejoss 09.08.2014 01:10
quelle

Tags und Links