webForumDet fria alternativet
Logga in / Bli medlem

problem med javascript i argument

JavaScript

5 svar · 571 visningar · startad av Moonman

Medlem sedan apr. 200273 inlägg
Frågan#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>')
}"
Medlem sedan aug. 20039 340 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.

Medlem sedan nov. 20014 054 inlägg
#3

du måste escapa special tecken som ' " &

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

Medlem sedan aug. 20039 340 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.

Medlem sedan nov. 20014 054 inlägg
#5

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

Medlem sedan apr. 200273 inlägg
#6

Tusen tack alla!

255 ms totalt · 4 externa anrop · v20260731065814-full.05830320
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)