Avatar billede thettothej Nybegynder
10. marts 2008 - 15:43 Der er 7 kommentarer og
1 løsning

Window location i Javascript - link åbner forkert.

Hey alle

Jeg har et spørgsmål vedr et javascript, jeg bruger. Det er en dropdownliste, hvori man kan vælge bilmærker, og ved klik skal den så linke til den pågældende html-fil. Den linker også fint, men den åbner siden i det vindue, man sidder i (altså den navigerer væk fra hovedsiden, og viser kun den pågældende html-side. Den skal åbne i en frame, som er i det cmssystem, jeg sidder i. Normalvis er target for denne frame "main" eller "_self", men hverken det ene eller andet fungerer. Jeg mistænker nu min korte javascriptkode for at være problemet - da jeg er utrolig ringe til javascript, kan jeg ikke selv finde fejlen, men håber på, at I kan hjælpe mig.

Her er javascriptet, som er placeret i <head>:

<script type="text/javascript">
    function nav()
  {
  var w = document.myform.mylist.selectedIndex;
  var url_add = document.myform.mylist.options[w].value;
  window.location.href = url_add;
  }
  </script>

I body har jeg så placeret følgende:

<FORM NAME="myform">
<SELECT NAME="mylist" onChange="nav()">
<OPTION VALUE="http://www.minurl.dk/alfa.html" TARGET="_self">Alfa Romeo

</SELECT>
</FORM>

Jeg forestiller mig, at det måske har noget at gøre med window.location.href at gøre, men som sagt ved jeg ikke ret meget om javascript.

På forhånd mange tak! :-)
Avatar billede w13 Novice
10. marts 2008 - 15:49 #1
Du kan ikke sætte en target på en option. Det har simpelthen ingen indflydelse dér. Gør i stedet således:

java script:

<script type="text/javascript">
function nav(o){
  window.open(o.options[o.selectedIndex].value,"main");
}
</script>

HTML:

<FORM NAME="myform">
<SELECT NAME="mylist" onChange="nav(this)">
<OPTION VALUE="http://www.minurl.dk/alfa.html">Alfa Romeo</OPTION>
</SELECT>
</FORM>
Avatar billede thettothej Nybegynder
10. marts 2008 - 16:23 #2
Tak for svar - det løste dog ikke problemet helt. Den åbner nu med "main" i et nyt vindue og med "_self" åbner den i "sig selv", som den gjorde førhen også.

Du har ikke lavet en tastefejl eller lign? :-)
Avatar billede w13 Novice
10. marts 2008 - 16:26 #3
Det kan laves således, som burde være mere fejlsikkert:

<script type="text/javascript">
function nav(o){
document.getElementById("main").setAttribute("src",o.options[o.selectedIndex].value)
}
</script>

Så skal du bare lige sætte id="main" på dit "main"-frame.
Avatar billede thettothej Nybegynder
10. marts 2008 - 16:35 #4
Jeg har lige prøvet at sætte den kode ind, men den gør intet - siden skifter slet ikke. Problemet er, at jeg ikke har adgang til selve index-filen, da jeg sidder i DanDomains cmssystem. Jeg ved bare, at den content-frame i midten typisk virker, når man skriver enten _self eller main. Gode råd er ved at være dyre, synes jeg :-(

Tusind tak for din hjælp so far i hvert fald!
Avatar billede olebole Juniormester
10. marts 2008 - 17:55 #5
<ole>

Hvis links med target="main" virker, skal koden vist se sådan ud:

<script type="text/javascript">
function nav(o){
    document.getElementsByName("main")[0].location.href = o.value;
}
</script>

/mvh
</bole>
Avatar billede olebole Juniormester
10. marts 2008 - 17:56 #6
Mjaahhh ... nok nærmere:

<script type="text/javascript">
function nav(o){
    document.getElementsByName("main")[0].setAttribute("src", o.value);
}
</script>
Avatar billede thettothej Nybegynder
10. marts 2008 - 18:04 #7
Tak, det prøver jeg lige Olebole.
Avatar billede thettothej Nybegynder
10. marts 2008 - 18:09 #8
Det virkede heller ikke :-( Den reagerer overhovedet ikke - under menuen i CMSsystemet kan jeg se, at target normalt er "main", men mindes jeg engang brugte _self også. Jeg har prøvet dem begge på samtlige koder, I har smidt op - det fungerer bare ikke :-( Det er da utroligt!

Der skal ikke ændres noget i html-koden for de koder, I skriver? Ligenu ser den ud, som w13 skrev den i hans indlæg.

Igen, mange tak for hjælpen.
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