webForumDet fria alternativet

problem med javascript i argument

5 svar · 569 visningar · startad av Moonman

MoonmanMedlem sedan apr. 200273 inlägg
#1

Skickar in en massa data som argument till en funktion som använder innerHTML. Får inte riktigt till det med ' & " så vad gör jag för fel?

onclick="javascript:
if(document.login.log_remember.checked)
{
showHelp('Genom att använda denna funktion godkänner du att en cookie lagras på din dator. 
Cookien används enbart för att identifiera dig och du kommer att vara inloggad på denna dator tills du klickar på logga ut.
<p />
<button onclick="javascript:document.getElementById('help').style.visibility = 'hidden'">Ok</button>')
}"
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Gee! Skapa en array med alla hjälptexter i, kopplade till elementets id, det är vad jag säger. Om du absolut måste använda inline-kod, så bör du ersätta " med ". (La till runt "cookien" för att exemplifiera)
Dessutom ska du aldrig ha javascript: i ett onclick-event.

onclick="
if(document.login.log_remember.checked)
{
showHelp('Genom att använda denna funktion godkänner du att en cookie lagras på din dator. 
&nbsp;Cookien&nbsp; används enbart för att identifiera dig och du kommer att vara inloggad på denna dator tills du klickar på logga ut.
<p />
<button onclick=&quot;document.getElementById(\'help\').style.visibility = \'hidden\'&quot;>Ok</button>')
}"

Edit, nu såg jag hur koden faktiskt såg ut. Du måste även escape de inre apostroferna. Inte pga HTML utan pga du använder apostrofer inom apostrofer i javascript.
Edit 2: Dönickvarning på mig idag. Ja råkade skriva nbsp iställer för quot.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#3

du måste escapa special tecken som ' " &

' = \'
& = \&
" = \"

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Fredde Mannen skrev:

du måste escapa special tecken som ' " &

' = \'
& = \&
" = \"

Fel. ' ska bara escapas som \' om det förekommer inom en js-sträng som redan är omsluten av ' och '.
" ska bara escapas som \" om det förekommer inom en js-sträng som redan är omsluten av " och ". " måste escapas som " när den används inuti ett (X)HTML-attribut, t ex onclick.
& ska aldrig escapas som \&. & bör dock escapas som & överallt i ett XHTML-dokument, inklusive i en egenskap som onclick eller value, om dokumentet ska vara giltig XHTML.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#5

så sant så sant.. läste bara det på w3school för ett tag sedan ... :)

MoonmanMedlem sedan apr. 200273 inlägg
#6

Tusen tack alla!

251 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
126 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)