Mi perdo in un bicchier d'acquama, come faccio a non far fallire questo 'confirm':
nel caso che titolo contenga degli apici o delle virgolette?codice:if (confirm("Stai eliminando la pagina \'"+titolo+"\'"+avviso+". Sei sicuro?"))
Grazie mille![]()
Mi perdo in un bicchier d'acquama, come faccio a non far fallire questo 'confirm':
nel caso che titolo contenga degli apici o delle virgolette?codice:if (confirm("Stai eliminando la pagina \'"+titolo+"\'"+avviso+". Sei sicuro?"))
Grazie mille![]()
Non dovrebbe fallire, è probabile invece che l'errore sia in una riga precedente dove hai settato la variabile titolo.
Per fare l'escape delle virgolette basta mettere davanti a ogni virgoletta contenuta nella stringa un backslash:
codice:var test = "abdbk\"\"fsfdgf";
Ok il problema è qua
In pratica devo rimuovere sia gli apici singoli che le virgolette (altrimenti mi spezza la stringa oppure il tag html).codice:');">Elimina
Come devo metterli perchè non dia errore se ho delle virgolette?
Con ASP faccio la replace ma non capisco come andrebbe messo:
(che in ASP sostituisce " con \")codice:Replace( replace(Rs("Titolo"),"'","\'") , """", "\""")
ma non pare funzionare.
Dovrebbe essere così?
Non so se è possibile visto che le virgolette comunque rompono il tag, no?codice:Elimina
Grazie....
Apparte il fatto che a necessitare di escape sono le virgolette singole, per usare le virgolette doppie puoi scrivere al posto di " "
Elimina
Le virgolette continuano a spezzare però quelle del tag 'href'.
Non risolve il problema.
Ho provato a sostituirlo con l'entità HTML " e funziona però![]()
Ma Javascript teoricamente non supporta le entità HTML, no?![]()
Avevo scritto sostituisci al posto di " ", peccato che essendo questa una pagina html l'entità mi è stata interpretata![]()
Cmq si, le supporta, anche se è possibile usare al loro posto entità esadecimali.
Azz ecco cos'era
Comunque non sono convinto del supporto delle entità perchè facendo
mi scrive "perch&egrave;" e non "perchè" :master:codice:<script>alert("perch&egrave;");</script>
Beh, la finestra dell'alert non è un browser, quindi NON interpreta le entità.
![]()
Zappa
[PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
[Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]
Ah
Ma l'alert allora... che diamine è?
E come mai invece in una 'confirm' non mi dà il medesimo problema?![]()
In realtà non è javascript a interpretare le entità, l'unico motivo per cui vengono interpretate è che sono contenute in un attributo href ( chiedo scusa per la baggianata precedente ).
Infatti se metti il confirm dentro un tag script come hai fatto per l'alert le entità html non vengono interpretate.