Mam następujący skrypt, który koduje niektóre wartości, które otrzymuje, ale nie wydaje się kodować podwójnych cudzysłowów.Kodowanie kodu HTML przed POST
Jak poprawnie zakodować pełną wartość przed wysłaniem?
function htmlEncode(value){
return $('<div/>').text(value).html();
}
Powyższy skrypt daje mi to:
<p>Test&nbsp; <span style="color: #ffffff"><strong><span style="background-color: #ff0000">1+1+1=3</span></strong></span></p>
muszę mi go dać w ten sposób:
<p>Test&nbsp; <span style="color: #ffffff"><strong><span style="background-color: #ff0000">1+1+1=3</span></strong></span></p>
EDIT: Nawiązanie pytanie: Encoded HTML in database back to page
Wygląda na to, że starają się klienta, aby jakiś tekst HTML bezpieczny przed przesłaniem go do serwera. Nie rób tego. Uczyń treść HTML bezpieczną w drodze z systemu, a nie w drodze (a zwłaszcza nie na kliencie, gdzie może zostać zmieniona) – Quentin
Dlaczego musisz to zrobić JS na kliencie? – troutinator
Dlaczego chcesz to dać '"' mimo to? Jeśli nie planujesz wstawić danych do wartości atrybutu (którą łączymy za pomocą ciągów zamiast DOM lub innego sensownego API), to używasz tylko 6 bajtów, gdy 1 zrobi to i utrudni czytanie. – Quentin