Avatar billede groggy Nybegynder
14. december 2000 - 03:05 Der er 23 kommentarer og
3 løsninger

Hvad er fejlen i dette script?

Når jeg indsætter dette script kommer der denne fejlmeddelelse: syntax error. Line 2. Char 1.

Scriptet ser sådan ud:

<script language=\"JavaScript\">
<!-- Hide from old browsers --
function surfto(form) {
var linkindex=form.Url.selectedIndex
top.location=form.Url.options[linkindex].value;
}
//-->
</script>
<form NAME=\"linkform\">
<p>
    <SELECT NAME=\"Url\" OnChange=\"surfto(this.form)\">
            <OPTION VALUE=\"webadresse ...\" SELECTED>-VÆLG HVOR DU VIL HEN-
            <OPTION VALUE=\"forside.htm\">Forside
            <OPTION VALUE=\"lidtommig.htm\">Lidt om mig
            <OPTION VALUE=\"webcam.htm\">Webcam
            <OPTION VALUE=\"linkz.htm\">Linkz
            <OPTION VALUE=\"comp.htm\">Min comp
            <OPTION VALUE=\"SMS.htm\">SMS
    </SELECT>
<!--<INPUT TYPE=\"Button\" VALUE=\"Afsted\" OnClick=\"surfto(this.form)\">-->

Det skal siges er jeg er absolut newbie og ikke har lavet scriptet selv.

/Groggy
Avatar billede rune_mariboe Nybegynder
14. december 2000 - 04:36 #1
Det er pudsigt, du får fejl - for der ER ingen fejl (medmindre du kører med NetSkab (men så er du sQ oxo selv ude om det!;)) ... Der er som sagt ingen fejl - heller ikke nogen, Microsoft Script Debugger kan finde, såh... Smid lidt mere info om problemet herop eller send mig et brev - rune@mariboe.com :)

P.S. Du kan lige så godt slette den sidste linie, hvis du ikke skal bruge den senere hen - den er alligevel \"rem\"\'et ud - den læses ikke af browseren...
Avatar billede groggy Nybegynder
14. december 2000 - 04:40 #2
Mere information:
Browser = Explorer 5.5
html editor = Stones Webwriter 3

Andet information du kan bruge?
Avatar billede groggy Nybegynder
14. december 2000 - 04:55 #3
Jeg er heller ikke sikker på at jeg skriver den rigtige kode for at sætte det ind i på hjemmesiden:

<SCRIPT LANGUAGE=\"JavaScript\" SRC\"menu.js\">
</SCRIPT>
Avatar billede jakoba Nybegynder
14. december 2000 - 06:45 #4
Når der kommer sådan en fejlmeddelelse tælles lilierne fra kildefilens top. Så der er ikke ret meget plads til de normale HTML kommandoer der altid bør være i et script.

et <form ... > tag skal altid have et </form> tage efter formen er defineret.
din <INPUT TYPE=\"Button\" VALUE=\"Afsted\" OnClick=\"surfto(this.form)\"> linie er blevet til en HTML kommentar fordi du har sat  <!--  og  -->  rundt om. Så kan HTML slet ikke se den tag.
Dit første element i <select> listen har ikke nogen fornuftig adresse at hoppe til; det vil under alle omstændigheder give fejl når folk klikker der. Sådan noget forklarende tekst bør ligge udenfor selecten.

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">
<HTML>
<HEAD>
<TITLE>din sidetitel</TITLE>

<script language=\"JavaScript\">
<!-- Hide from old browsers --
function surfto(form) {
  var linkindex=form.Url.selectedIndex
  top.location=form.Url.options[linkindex].value;
}
// -->
</script>

</HEAD>
<BODY>

<form NAME=\"linkform\">
<p>VÆLG HVOR DU VIL HEN
<SELECT NAME=\"Url\" OnChange=\"surfto(this.form)\">
          <OPTION VALUE=\"forside.htm\">Forside
          <OPTION VALUE=\"lidtommig.htm\">Lidt om mig
          <OPTION VALUE=\"webcam.htm\">Webcam
          <OPTION VALUE=\"linkz.htm\">Linkz
          <OPTION VALUE=\"comp.htm\">Min comp
          <OPTION VALUE=\"SMS.htm\">SMS
          </SELECT>
    <INPUT TYPE=\"Button\" VALUE=\"Afsted\" OnClick=\"surfto(this.form)\">
</form>

</BODY>
</HTML>

Jeg har lagt ovenstående som en fil på adressen
    http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp38353.html
og der virker det (fortset fra at de html-filer det peger på ikke findes hos mig). Du kan hente filen med menuen  \"filer\"  punkt  \"gem som\"  og arbejde videre derfra.

Men tage og kik på den lidt før du bare bruger og glemmer der var et problem. For det er (som du selv nævner) elementære begynderfejl som du bør undgå en anden gang.

mvh JakobA
Avatar billede jakoba Nybegynder
14. december 2000 - 06:50 #5
rune_mariboe >> Netscape har heller ingen problemer med scriptet. Det kører fint der også.
Avatar billede Kengun Praktikant
14. december 2000 - 09:10 #6
Kan du ha glemt en > i setning nr. 2?
Feil: <!-- Hide from old browsers --
Riktig: <!-- Hide from old browsers -->
Avatar billede geeeet Nybegynder
14. december 2000 - 10:36 #7
Fejlen er den måde du inkluderer scriptet på:

<SCRIPT LANGUAGE=\"JavaScript\" SRC\"menu.js\">
</SCRIPT>

-->

<SCRIPT LANGUAGE=\"JavaScript\" SRC=\"menu.js\">
</SCRIPT>

Der manglede lige et = tegn..

/Geeeet
Avatar billede ldanielsen Nybegynder
14. december 2000 - 22:45 #8
function surfto(f) {
var linkindex=f.Url.selectedIndex
top.location=f.Url.options[linkindex].value

Det er en skidt vane at bruge reserverede org som variabelnavne, men ikke rigtig en fejl

ellers tror jeg da at geet fandt kernen i problemet
Avatar billede groggy Nybegynder
15. december 2000 - 14:24 #9
geeet >> Det var bare en skrivefejl her. Det står som det skal i html dokumentet.

Jeg har glemt at sige at jeg gerne vil have scriptet i en .js fil og så et link i html dokumentet der henter det frem. Men som sagt er jeg totalt newbie inden for javascript og ved derfor ikke om dette kan lade sig gøre med dette script.
Avatar billede rune_mariboe Nybegynder
16. december 2000 - 17:24 #10
jakoba«Ingen tags behøver sluttags siden MSIE 3.0 og NetSkab 3.5, såehh... Den der button i slutningen er ligegyldig, da scriptet eksekveres ved skift i selectoren:

OnChange=\"surfto(this.form)\"

Kengun«Nej, det ville være en fejl at gøre, som du gør - det smarte er, at scriptet skjules for browseren, der \"overser\" <script>-tag\'et...
Avatar billede rune_mariboe Nybegynder
16. december 2000 - 17:26 #11
... men hvis du bruger HTML-tags i en .js fil er det klart, du får fejl...

I menu.js filen skal KUN stå

function surfto(form) {
var linkindex=form.Url.selectedIndex
top.location=form.Url.options[linkindex].value;
}

i .htm filen skal kun stå

<script language=\"JavaScript\" src=\"menu.js\"></script>
<form NAME=\"linkform\">
<p>
    <SELECT NAME=\"Url\" OnChange=\"surfto(this.form)\">
            <OPTION VALUE=\"webadresse ...\" SELECTED>-VÆLG HVOR DU VIL HEN-
            <OPTION VALUE=\"forside.htm\">Forside
            <OPTION VALUE=\"lidtommig.htm\">Lidt om mig
            <OPTION VALUE=\"webcam.htm\">Webcam
            <OPTION VALUE=\"linkz.htm\">Linkz
            <OPTION VALUE=\"comp.htm\">Min comp
            <OPTION VALUE=\"SMS.htm\">SMS
    </SELECT>

... hmm...
Avatar billede groggy Nybegynder
16. december 2000 - 19:30 #12
rune_mariboe >> Det er ikke muligt at få det der skal stå i .htm dokumentet over i .js filen? Det ville være nemmere når man retter i menuen på hjemmesiden. Så behøver man kun at rette et sted i stedet for på samtlige sider.

Ved godt at det kan gøres med frames. Men det skal der ikke bruges på hjemmesiden.
Avatar billede rune_mariboe Nybegynder
17. december 2000 - 00:05 #13
Joh... men det er et større arbejde:
Et eksempel:
Dette skal stå i menu.js:

link = new Array(); linknavn = new Array()
link[0] = \"webadresse ...\"; linknavn[0] = \"-VÆLG HVOR DU VIL HEN-\"
link[1] = \"forside.htm\"; linknavn[1] = \"Forside\"
link[2] = \"lidtommig.htm\"; linknavn[2] = \"Lidt om mig\"
link[3] = \"webcam.htm\"; linknavn[3] = \"Webcam\"
link[4] = \"linkz.htm\"; linknavn[4] = \"Linkz\"
link[5] = \"comp.htm\"; linknavn[5] = \"Min comp\"
link[6] = \"SMS.htm\"; linknavn[6] = \"SMS\"

function initiate() {
output = \"<form name=\\\"linkform\\\"><p>\\n<select name=\\\"Url\\\" onChange=\\\"surfto(this.form)\\\">\"
for (i=0;i<link.length;i++) {
  output += \"\\n<option value=\\\"\" + link[i] + \"\\\">\" + linknavn[i]
}
output += \"\\n</select>\"
document.write(output)
}

function surfto(form) {
var linkindex = form.Url.selectedIndex
top.location = form.Url.options[linkindex].value;
}

og dette i din .htm fil:

<script language=\"JavaScript\" src=\"menu.js\"></script>

<body onLoad=\"initiate()\">
Avatar billede rune_mariboe Nybegynder
17. december 2000 - 00:12 #14
Ups, glemte sQ lige <script> tag\'et - følgende skal stå i menu.js i stedet:

link = new Array(); linknavn = new Array()
link[0] = \"webadresse ...\"; linknavn[0] = \"-VÆLG HVOR DU VIL HEN-\"
link[1] = \"forside.htm\"; linknavn[1] = \"Forside\"
link[2] = \"lidtommig.htm\"; linknavn[2] = \"Lidt om mig\"
link[3] = \"webcam.htm\"; linknavn[3] = \"Webcam\"
link[4] = \"linkz.htm\"; linknavn[4] = \"Linkz\"
link[5] = \"comp.htm\"; linknavn[5] = \"Min comp\"
link[6] = \"SMS.htm\"; linknavn[6] = \"SMS\"

function initiate() {
output = \"<script language=\\\"JavaScript\\\" src=\\\"menu.js\\\"></s\"+\"cript>\\n<form name=\\\"linkform\\\"><p>\\n<select name=\\\"Url\\\" onChange=\\\"surfto(this.form)\\\">\"
for (i=0;i<link.length;i++) {
  output += \"\\n<option value=\\\"\" + link[i] + \"\\\">\" + linknavn[i]
}
output += \"\\n</select>\"
document.write(output)
}

function surfto(form) {
var linkindex = form.Url.selectedIndex
top.location = form.Url.options[linkindex].value;
}
Avatar billede rune_mariboe Nybegynder
17. december 2000 - 18:16 #15
Idanielsen«At bruge et reserveret ord ville være en fejl, jo - Der er en grund til, det hedder \"reserveret\" - det kan ikke bruges som variabel... Men nu er \"linkindex\" (regner med, det er det, du refererer til?) ikke et reserveret ord, så det går sQ nok, du ;)
Avatar billede rune_mariboe Nybegynder
17. december 2000 - 18:18 #16
Groggy«Med \"mere info\" mente jeg forresten, hvad du gør for at få fejlmeddelelsen frem (er det når du klikker eller bare når du indlæser siden?)... :)
Avatar billede rune_mariboe Nybegynder
17. december 2000 - 18:39 #17
Men... nu, vi er i gang, kan vi jo lige så godt optimere scriptet lidt:

- prøv at lade menu.js indeholde dette:

link = new Array(); linknavn = new Array()
link[0] = \"webadresse ...\"; linknavn[0] = \"-VÆLG HVOR DU VIL HEN-\"
link[1] = \"forside.htm\"; linknavn[1] = \"Forside\"
link[2] = \"lidtommig.htm\"; linknavn[2] = \"Lidt om mig\"
link[3] = \"webcam.htm\"; linknavn[3] = \"Webcam\"
link[4] = \"linkz.htm\"; linknavn[4] = \"Linkz\"
link[5] = \"comp.htm\"; linknavn[5] = \"Min comp\"
link[6] = \"SMS.htm\"; linknavn[6] = \"SMS\"

function initiate() {
output = \"<script language=\\\"JavaScript\\\" src=\\\"menu.js\\\"></s\"+\"cript>\\n<form name=\\\"linkform\\\"><p>\\n<select name=\\\"Url\\\" onChange=\\\"top.location=value\\\">\"
for (i=0;i<link.length;i++) {
  output += \"\\n<option value=\\\"\" + link[i] + \"\\\">\" + linknavn[i]
}
output += \"\\n</select>\"
document.write(output)
}
Avatar billede rune_mariboe Nybegynder
24. december 2000 - 03:47 #18
Hva\'ehh... Har du tænkt dig at acceptere et svar eller spørge videre??

- Glædelig jul til alle! =)
Avatar billede lp Nybegynder
24. december 2000 - 03:54 #19
ehhh, fejlen er højst sandsyneligt at din JavaScript funktion ikke står indenfor <head> og </head> og derfor kan netscape ikke parse koden og derfor giver den fejl.....prøv at flytte det op i toppen, det hjælper sikkert :-)
Avatar billede rune_mariboe Nybegynder
24. december 2000 - 04:13 #20
lp«2 ting:
1) NS kan godt parse JavaScriptkode, der ikke står mellem headertags
2) Han skriver, han bruge MSIE55!
Avatar billede rune_mariboe Nybegynder
24. december 2000 - 04:13 #21
P.S.
lp«Lidt trætte, er vi? ;)
Avatar billede lp Nybegynder
24. december 2000 - 04:15 #22
he he, tjahhh.....måske men det var da et forsøg værd....jeg kan ikke se hvorfor den skulle kunne give fejl, hvis ikke det er fordi koden står forkert....og nej, netscape kan give problemer hvis koden ikke er korrekt placeret.....
Avatar billede groggy Nybegynder
24. december 2000 - 13:09 #23
Jeg har selv siddet og leget lidt med problemet men har givet op. Så jeg har valgt at sætte scriptet ind på alle html siderne i stedet for. Og der virker det fint.

Men jeg giver selvfølgelig point som tak for indsatsen!

Og en rigtig glædelig jul til jer alle!
Avatar billede groggy Nybegynder
24. december 2000 - 13:14 #24
Jeg har valgt at give jer tre point da i ydeste den største hjælp.

Jeg siger tak og igen glædelig jul.
Avatar billede rune_mariboe Nybegynder
24. december 2000 - 13:43 #25
lp«Alle browsere gi\'r problemer, hvis functioner, variabler etc. ikke læses, før de bliver kaldt - men det er BESTEMT ikke et must, at de placeres i head! I særlige tilfælde kan det ligefrem være en fordel, at koden ikke bliver indlæst før senere..!

groggy«Var der virkelig intet, der hjalp?? Send mig dine dokumenter (det hele!) til rune@mariboe.com ... så finder jeg en løsning :)

Glædel-i-lige-måde jul! ;)
Avatar billede groggy Nybegynder
24. december 2000 - 15:16 #26
rune mariboe >> En mail er sendt... :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester