[Javascript] Firefox neemt tweede variabele niet mee

Pagina: 1
Acties:

  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-04 15:25

SAiKO

Grote Smurf

Topicstarter
Ik heb een, voor mij, vreemd probleempje. Ik heb een dropdownmenu waarin een serie radiostations staan en wanneer erop geklikt word, dan moeten deze openen in een nieuw scherm. De link en de naam van het station moet dan meegegeven worden.

Hiervoor heb ik het volgende javascript in de header:
code:
1
2
3
4
5
6
7
8
<script language="Javascript" type="text/javascript">
<!-- Begin 
function popUp() { 
day = new Date(); 
id = day.getTime(); 
eval("page" + id + " = window.open('radio.php' + '?radiolink=' + document.jump.menu.options[document.jump.menu.selectedIndex].value + '&radionaam=' + document.jump.menu.options[document.jump.menu.selectedIndex].radionaam , '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=250,height=50');");} 
// End --> 
</script>


En dit is mijn dropdown menu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td><font class="content"><center><form name="jump" method=''post''>
<select name="menu" onChange="popUp()">
<option>Kies een zender</option>
<option value="http://www.digitallyimported.com/wma/eurodance.asx" radionaam="Euro Trance">DI Euro Trance</option>
<option value="http://www.digitallyimported.com/wma/deephouse.asx" radionaam="Deep House">DI Deep House</option>
<option value="http://www.digitallyimported.com/wma/hardhouse.asx" radionaam="Hard House">DI Hard House</option>
</select>
</form></center></font></td>
</tr>
</table>


Het probleem is dus dat de volgende link geopend word: radio.php?radiolink=http://www.digitallyimported.com/wma/hardhouse.asx&radionaam=undefined

Ik snap niet waarom radionaam undefined is.. Kan iemand mij dit uitleggen? In Internet Explorer werkt het wel maar in Firefox is hij "undefined". Hij werkt wel maar ik mis de titel nog... wie helpt mij dit laatste schoonheidsfoutje weg te werken? ;)

[ Voor 19% gewijzigd door SAiKO op 16-03-2005 18:43 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:27

crisp

Devver

Pixelated

Het is een niet-standaard attribuut. Waarschijnlijk kan je hem met getAttribute() wel achterhalen.

Intentionally left blank


  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 07-05 12:51
Misschien dat Firefox ongeldige attributen niet eens in z'n geheugen houdt? Wrs is de enige manier waarop het werkt een bepaalde hidden input veranderen zodra je een item selecteert, of in javascript een array met URLs én titels bijhouden en telkens OPTION value="1", OPTION value="2" gebruiken als array keys?

  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-04 15:25

SAiKO

Grote Smurf

Topicstarter
Met document.jump.menu.options[document.jump.menu.selectedIndex].getAttribute('radionaam') in plaats van document.jump.menu.options[document.jump.menu.selectedIndex].radionaam doet ie het nu ook in Firefox. Lijkt mij dus dat FF niet met alternatieve attributen kan omgaan..

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
SAiKO schreef op woensdag 16 maart 2005 @ 19:20:
Lijkt mij dus dat FF niet met alternatieve attributen kan omgaan..
Lijkt mij meer dat firefox dit soort zaken implementeerd volgens de door W3C gedefinieerde standaard...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:27

crisp

Devver

Pixelated

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<html>
    <head>
        <title>Jump test</title>
        <script type="text/javascript">

            function popUp(sel)
            {
                var option = sel.options[sel.selectedIndex];
                var value = option.getAttribute('value');

                if (value)
                {
                    var radionaam = option.getAttribute('radionaam');
                    var url = 'radio.php?radiolink='+escape(value)+'&radionaam='+escape(radionaam);
                    var options = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=250,height=50';
                    window.open(url, '', options);
                }
            }

        </script>
    </head>
    <body>
        <form action="#" method="post">
            <fieldset>
                <legend>Jump test</legend>
                <select name="menu" onchange="popUp(this)">
                    <option>Kies een zender</option>
                    <option value="http://www.digitallyimported.com/wma/eurodance.asx" radionaam="Euro Trance">DI Euro Trance</option>
                    <option value="http://www.digitallyimported.com/wma/deephouse.asx" radionaam="Deep House">DI Deep House</option>
                    <option value="http://www.digitallyimported.com/wma/hardhouse.asx" radionaam="Hard House">DI Hard House</option>
                </select>
            </fieldset>
        </form>
    </body>
</html>


en nee, geen doctype want het valideerd toch niet ;)
En eigenlijk is het formulier hier ook overbodig, maar je zou er voor non-JS browsers wel een alternatieve actie aan kunnen hangen en een submit button.

[ Voor 6% gewijzigd door crisp op 16-03-2005 21:09 ]

Intentionally left blank


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Is 't niet handiger om de title attrubute hiervoor te gebruiken (misbruiken?)

| Toen / Nu

Pagina: 1