MoonmanMedlem sedan apr. 200273 inlägg 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>')
}"
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.
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="document.getElementById(\'help\').style.visibility = \'hidden\'">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.
du måste escapa special tecken som ' " &
' = \'
& = \&
" = \"
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.
så sant så sant.. läste bara det på w3school för ett tag sedan ... :)