Autor | Zpráva | ||
---|---|---|---|
MilanKarkulka Profil |
Ahoj, napsal jsem javascriptový a ajaxový script, který mi funguje ve všech prohlížečích - kromě Internet Exploreru 11. Mám následující 2 problémy.
<a href="javascript:mojeFunkce('Ahoj, jak se máš?')"> Jak mám escapovat text, který vkládám tímto způsobem do funkce? Protože IE vadí, pokud se tam nachází například otazníky. A i jiné znaky. Zatímco jiným prohlížečům to nevadí. Existuje nějaká funkce, která by to za mě ošetřila? http://www.example.com/zpracujAjax.php?text=Ahoj, jak se máš? Následně posílám tyto data ajaxem na server. Používám k tomu metodu GET. Všechny prohlížeče to zvládají. Ale opět to nefunguje v IE v okamžiku, kdy narazí na diakritiku nebo kdy se v textu nachází speciální znak. Například podtržítko. V tom případě na místě diakritiky nebo podtržítka následující jednoduše text odstřihne (ukončí). Co s tím? |
||
Chamurappi Profil |
#2 · Zasláno: 11. 10. 2016, 11:33:44
Reaguji na MilanaKarkulku:
„který mi funguje ve všech prohlížečích“ Ne pro všechny případy. Ampersand nebo mřížka ti to rozbije všude. „kromě Internet Exploreru 11.“ V případě neescapovaných speciálních znaků v adrese nezáleží jen na prohlížeči, mluvit do toho může i proxy server. Rozhodně je to něco, čemu by ses měl vyhnout. Kdykoliv přidáváš uživatelský vstup do strojově čteného formátu, musíš ten vstup patřičně escapovat, jinak si zaděláváš v lepším případě na chyby, v horším případě přímo na bezpečnostní díry (XSS, SQL injection). Na escapování parametru v URL je v JavaScriptu určená nativní funkce encodeURIComponent .
|
||
MilanKarkulka Profil |
#3 · Zasláno: 12. 10. 2016, 18:01:58
OK, a co to ošetření textu v parametru funkce? Existuje na to nějaká funkce?
Nebo existuje alespoň nějaký seznam znaků, které bych měl ošetřit? A stačí je escapovat lomítkem? |
||
Časová prodleva: 8 let
|
0