[IE7] Javascript probleem met de nieuwe browser

Pagina: 1
Acties:

  • FutureCow
  • Registratie: December 2000
  • Laatst online: 21:20

FutureCow

(C) FutureCow

Topicstarter
Ik heb een internet pagina met daarin javascript. Het probleem is dat dit perfect werkt met IE6 maar niet meer werkt met IE7

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<SELECT SIZE="1" NAME = "yearList" style= "position: absolute; top: 61; left: -1000; font-face='Arial'; font-size: 8pt; background-color: #C0C0C0" size="12" onClick = "changeYear();">
<OPTION VALUE = "year1">1996 </OPTION>
<OPTION VALUE = "year2">1997 </OPTION>
<OPTION VALUE = "year3">1998 </OPTION>
<OPTION VALUE = "year4">1999 </OPTION>
<OPTION VALUE = "year5">2000 </OPTION>
<OPTION VALUE = "year6">2001 </OPTION>
<OPTION VALUE = "year7">2002 </OPTION>
<OPTION VALUE = "year8">2003 </OPTION> 
<OPTION VALUE = "year9">2004 </OPTION>
<OPTION VALUE = "year10">2005</OPTION>
<OPTION VALUE = "year11">2006 </OPTION>
<OPTION VALUE = "year12">2007 </OPTION>
</SELECT><P>

Dit is het stukje code voor de jaarlijst, maar zoals je hieronder op de screenschots ziet, valt er bij IE7 dinger er over heen, waardoor je dus niet meer de dropdown lost van de maanden en de jaren krijgt.

IE7:
Afbeeldingslocatie: http://members.lycos.nl/FutureCow/js/pagina1IE7.jpg


IE6:
Afbeeldingslocatie: http://members.lycos.nl/FutureCow/js/Pagina1IE6.jpg


Maar wat er vooral niet goed gaat is dit;
code:
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
function buildViewList() 
{
    var rows = views.split("#;");
    var viewColumns;
    var destinationList = window.document.view.viewList;
    var numb;
    viewValue = 'All jobs';
    numb = currentView;
    var listLine = 0;
    for (var i = 0; i < rows.length - 1; i++) 
    {
        viewColumns = rows[i].split("\t");
        if (viewColumns[0].charAt(0) != '-')
        {
            if (viewColumns[1] == numb) viewValue = viewColumns[0];
            if (viewColumns[0] == "") viewColumns[0] = "     ";
            destinationList.options[listLine] = new Option(viewColumns[0], viewColumns[1]);
            listLine++;
        }
        else if (destinationList.options[listLine - 1].value != subLine)
        {
            destinationList.options[listLine] = new Option(subLine, subLine);
            listLine++;
        }
    }
    destinationList.options[listLine] = new Option('All jobs', 'All jobs');
    window.document.planboard.currentView.value = numb;
}

code:
1
2
3
4
5
6
7
8
function view() 
{
    if (viewLeft == "-1000px")
    {
        viewLeft = "0px";
        document.all.viewList.style.left = 0;
    }
}


De screens:

IE7:
Afbeeldingslocatie: http://members.lycos.nl/FutureCow/js/pagina2IE7.jpg


IE6:
Afbeeldingslocatie: http://members.lycos.nl/FutureCow/js/Pagina2IE6.jpg

  • Skit3000
  • Registratie: Mei 2005
  • Laatst online: 20:39
Werk je met z-orders? In IE6 (en eerder) zit namelijk een bug dat select-elementen altijd overal bovenop komen. Bij IE7 is dit opgelost waardoor select element net als elk ander element door een ander element "overschreven" kunnen worden.

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Wat zijn dit voor constructies:
JavaScript:
1
2
window.document.view.viewList;
document.all.viewList.style.left = 0;

Gebruik in plaats daarvoor getElementById en document.forms["formuliernaam"].elements["elementnaam"]. De huidige code is dusdanig verouderd dat je inderdaad de kans loopt dat het niet lekker werkt.

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Skit3000 schreef op zaterdag 18 november 2006 @ 15:17:
Werk je met z-orders? In IE6 (en eerder) zit namelijk een bug dat select-elementen altijd overal bovenop komen. Bij IE7 is dit opgelost waardoor select element net als elk ander element door een ander element "overschreven" kunnen worden.
Voor IE6 heb je daar trouwens weer workarounds voor, maar die zijn niet echt netjes (als je een XHTML/CSS-purist bent ;))