©ilj@flowsim.se
JavaScript på svenska
JavaScript / om det inte fungerar

- baserad på frågor och kod som mailats hit


pil som perkar nedåt
 


 
 
 
Kolla stavning och användningen av stora och små bokstäver! En funktion som heter hej() är inte samma funktion som en som heter Hej().
 
en fyrkant

 
Citationstecken, parenteser, hakparenteser och krullparenteser används för att tala om var något börjar och var det slutar. De förekommer alltså i par. Ett inledande citationstecken kräver ett avslutande dito.
 
Parentesernas uppgift är att tala var någonting börjar
{
och var det slutar
}.
 
Jämför
 

1
function funktionsnamn()
{
kodrad1
}
kodrad2

 

2
function funktionsnamn()
{
kodrad1
kodrad2
}
 
I exempel 1 kommer kodrad1 att utföras endast när funktionen anropas medan kodrad2 utförs direkt när sidan laddas.
 
I exempel 2 däremot hör även
kodrad2 till funktionen och kommer inte att utföras förrän funktionen anropas.
 
en fyrkant

 
Citationstecken används enligt principen
 
"...'...'... "

 
'..."..."... '
 
Exempel. Om man vill skriva text på sidan kan man använda kod som ser ut så här:
 
document.write("den här texten skrivs på sidan")
 
Det som ska skrivas på sidan placeras alltså mellan citationstecken - enkla eller dubbla. Dvs om ett citationstecken hittas så ska allt som finns mellan det och nästa citationstecken av samma typ skrivas.
 
Så hur gör man om man vill skriva ett citat omgivet av citationstecken - t ex 'Alea jacta est!' - på sidan? Så här
 
document.write(" 'Alea jacta est!' ")
 
eller så här
 
document.write(' "Alea jacta est!" ')
 
(mellanslagen mellan citationstecknen ovan bara för tydlighets skull)
 
en fyrkant

 

 
"INGENTING HÄNDER" - koden i funktionen utförs inte
 
Här följer en funktion som placerar en default-text i fönsterlisten i fönstrets underkant.
 
<SCRIPT LANGUAGE = "JavaScript
   TYPE="
text/javascript">
<!--
function setstatus()
{
window.defaultStatus = "THIS PAGE WAS..."
}
//
-->
</SCRIPT>

 
Ingenting kommer emellertid att hända förrän man ANROPAT funktionen. Det kan man göra på flera sätt. Om man vill att texten ska placeras i fönsterlisten så snart sidan laddats kan man t ex anropa funktionen så här:
 
<BODY ONLOAD="setstatus()">
 
Om man av någon anledning inte vill att den här default-texten ska dyka upp förrän man t ex fört muspekaren över en bestämd bild kan man i stället skriva så här:
 

<A HREF = "
URL"
    ONMOUSEOVER = "
setstatus()">
<IMG SRC = "
bild"></A>
 

 
Ett annat sätt att anropa en funktion som ska startas när sidan laddas är att helt enkelt placera ett anrop någonstans på sidan (efter det ställe där man definierat funktionen förstås). Så här kan det se ut:
 
<SCRIPT LANGUAGE = "JavaScript">
<!--
setstatus()
//
-->
</SCRIPT>

 
När det gäller kod som utan problem kan startas i samband med sidans laddning är det förstås allra enklast att inte använda någon funktion överhuvudtaget utan bara skriva koden rakt av, så här:
 
<SCRIPT LANGUAGE = "JavaScript">
<!--
window.defaultStatus = "THIS PAGE WAS..."
//
-->
</SCRIPT>

 
en fyrkant

 
FELMEDDELANDEN
 
Om man skriver javascript: i webbläsarens adressruta öppnas ett fönster med felmeddelanden.
 
Felmeddelandena här nedanför är hämtade från Netscape Navigator 4 (före snedstrecket) och Microsoft Internet Explorer 4 (som blandar meddelanden på svenska och engelska - efter snedstrecket)

 
- unterminated string literal / oavslutad strängkonstant

 
Här följer två exempel som orsakar det här felmeddelandet.
 
1
<SCRIPT LANGUAGE = "JavaScript">
<!--
window.defaultStatus = "THIS PAGE WAS...
//
-->
</SCRIPT>
 
Här fattas det avslutande citationstecknet!
 
2
<SCRIPT LANGUAGE = "JavaScript">
<!--
window.defaultStatus = "THIS
PAGE WAS..."
//
-->
</SCRIPT>
 
Här består felet i radbrytningen efter "THIS" mitt i textsträngen.
 
Placera texten på en rad eller placera bitar av texten mellan citationstecken och koppla samman dem med plustecken. Omedelbart före eller efter plustecknet kan man sedan lägga in en radbrytning.


 
en fyrkant

 
- Functionname is not defined / "|" är inte något objekt
 
Det här felmeddelandet kan man få om man definierat en funktion som heter "functionname" och sedan försöker använda "Functionname" för att kalla på den.
 
Felet kan också bero på att man försöker anropa funktionen innan den definierats.
 
Det kan också bero på en felplacerad krullparentes.

 
en fyrkant

 
- document.formnamn has no properties / "document.formnamn.textrutename" is not an object
 
Det här felmeddelandet kan bero på att man försöker göra något med en form och en textruta innan dessa finns på plats. T ex om man högst upp på sidan placerar kod som direkt när sidan laddas ska skriva något i en textruta som befinner sig i slutet av sidan. Det går inte.
 
Samma sak händer om man försöker byta en bild innan själva bild(plats)en finns på plats.
 
Se till att allt som ska användas av en viss kod finns på plats innan den startas.

 
en linje
Sidan gjordes av
 
ilj
 
ilj@flowsim.se
 
en fyrkant
 
Senast ändrad 13 april 1998.
 
Den här sidan hör hemma i ett ramsystem hos
www.flowsim.se
JAVASCRiPT