[html/php/css/javascript]Website geeft foutmelding in IE6

Pagina: 1
Acties:

  • Emielio
  • Registratie: December 2004
  • Laatst online: 01-02 17:40
Disclaimer:
Laat ik voorop stellen dat ik geen webdesigner ben en het ook niet wil worden, ik moet alleen voor mijn bedrijf een website hebben en heb geen budget voor een echte designer.

Info:
Site gemaakt in Vim.(heb ssh account dus werkt heel makkelijk.) :)
Technieken gebruikt:
html (Heel erg basic, hier heb ik me een klein beetje in verdiept)
php (Alleen php include, code geleend)
java (open source javascript menutje geleend)
css (hierin heb ik de opmaak die bij het javamenutje hoorde geplaatst en dit heb ik gebruikt voor de png transparantie hack)
Dit is de website, hier staat de code van index.php en hier de CSS file

Laat ik voorop stellen dat de manier van website maken niet erg netjes is, maar het is voor mij ook meer noodzaak als hobby/professie. Maar ik beroep me ook een beetje op het feit dat het wel heel erg ingewikkels is een technisch goede site te maken welke op elke browser draait.
Ik heb bijvoorbeeld meerdere malen over willen stappen van tabellen naar alles css, maar als ik dat voor elkaar had en dan bij iemand anders in IE controleerde of alles werkte zakte me de moed in de schoenen.

Probleem:
In IE geeft de site een foutmelding, ik kan helaas niet meer vertellen welke omdat bij ie6 onder wine alleen de foutmelding te zien is en ik niet de exacte melding tevoorschijn kan halen. Maar iedereen die IE heeft en de site opend ziet het meteen (linksonder en dan daar op dubbelklikken)

Wat uit bovenstaande mischien wel bleek is dat ik geen windows gebruiker ben en daarom heel lastig daarin kan testen. Echter werkt ie onder wine wel zodanig dat ik de foutmelding zie en ook kan controlere of hij weg is.

Vraag:
Is er iemand die zo ziet waar het in zit dat die foutmelding onder IE komt?
Verdere tips zijn ook welkom maar daar is het topic niet voor geopend.

Verder ben ik wel een keer van plan een nieuwe site te maken in een cms en dan iemand een template te laten maken maar voorlopig moet ik het hiermee doen.

Geprobeert:
Ik heb geprobeert na aanleiding van die foutmelding die ik nu even niet bij de hand heb uit te vissen waar het probleem zat. De foutmelding was gaf een bepaalde regel en een missende functie, maar hier kon ik niet echt wijs uit.

Ik hoop dat jullie het niet erg vinden dat ik vrij weinig kennis heb en dat de vraag mischien beneden jullie niveau is, maar voor mij is het een wezelijk probleem en ik kom er niet uit :'(

Alvast bedankt voor alle hulp!

Opleiding Brandveiligheid


  • amoen
  • Registratie: Juni 2003
  • Laatst online: 18-11-2025
de fout ontstaat pas als ik over het menu heen 'hoover'
en hij zit in ieder geval in deze functie:

code:
1
2
3
function menuMouseover(event){var menu;
if(browser.isIE)menu=getContainerWith(window.event.srcElement,"DIV","menu");
else menu=event.currentTarget;if(menu.activeItem!=null)closeSubMenu(menu);}


(de laaste regel is regel 47, waarin volgens mijn IE de fout zit (bij teken 31))

als IE een foutmelding geeft op een javascript, en ook een regelnummer geeft, dan moet je blijkbaar naar de regelnummer van de OUTPUT HTML kijken en niet naar de regelnummers die je bijvoorbeeld in je .php bestand hebt staan. dus simpelweg -> in IE je broncode opvragen en dan pas de regelnummer checken!

maarrr nou ben ik zelf dus helaas GEEN javascript-kundige, dus kan ik je met de fout zelf niet helpen :'( maar misschien dat je hier alvast hiermee verder kan?

[ Voor 20% gewijzigd door amoen op 17-07-2006 00:19 ]

heeeeee ..... hoe is het?


  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 19-01 20:46
Ik krijg hier in IE geen enkele foutmelding te zien?

  • WormLord
  • Registratie: September 2003
  • Laatst online: 01-12-2025

WormLord

Devver

De oorzaak van deze fout zit in de volgende html-regel:
HTML:
1
<div class="WinBalk" class="menu" onmouseover="menuMouseover(event)" style="position:relative;width=100%;">


Dit zal waarschijnlijk moeten zijn:
HTML:
1
<div id="WinBalk" class="menu" onmouseover="menuMouseover(event)" style="position:relative;width=100%;">

en anders:
HTML:
1
<div class="WinBalk menu" onmouseover="menuMouseover(event)" style="position:relative;width=100%;">

  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Dit kan niet:
HTML:
1
<div style="position:relative;width=100%;">

...en dit kan wel...
HTML:
1
<div style="position:relative;width:100%;">

...let dus even op het = teken, wat een : hoort te zijn als je styles toekent.

[ Voor 34% gewijzigd door Rowanov op 17-07-2006 10:30 ]


  • Emielio
  • Registratie: December 2004
  • Laatst online: 01-02 17:40
Als ik WormLord zijn advies opvolg (beide opties geprobeert) verdwijnt het menu.
En als ik Rowanov zijn advies opvolg veranderd er zo te zien niet veel maar de foutmelding blijft.
Ik heb ook een aantal combinaties tussen de adviesen geprobeert maar dat resulteerde ook in een verdwenen menu....

Nog iemand een idee?

Opleiding Brandveiligheid


  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 13-02 06:01
Oplossing:

code:
1
2
3
function menuMouseover(event){var menu;
if(browser.isIE)menu=getContainerWith(window.event.srcElement,"DIV","menu");
else menu=event.currentTarget;if(menu.activeItem!=null)closeSubMenu(menu);}


Veranderen in:

code:
1
2
3
4
5
6
7
8
9
10
11
function menuMouseover(event){var menu;
    if(browser.isIE) {
        menu=getContainerWith(window.event.srcElement,"DIV","menu");
    } else {
        menu=event.currentTarget;
        
        if (menu.activeItem!=null) { 
            closeSubMenu(menu);
        }
    }
}


Uitleg: Omdat er niet afgemaakte IF-jes gebruikt worden (niet verboden overigens) is het een beetje natte vingerwerk hoe deze geinterpreteerd worden. Daarom is het verstandiger om altijd alles voluit te schrijven. Het is duidelijker en het werkt beter.

/dev/null


  • funkwurm
  • Registratie: December 2005
  • Laatst online: 22-02-2021
Okee, hele tijd lopen klooien, heel veel dingen in dit tekstveld op GoT gezet en weer verwijderd, maar dit lijkt goed, je veranderd 2 dingen:
eerst dit:
HTML:
1
<div class="WinBalk" class="menu" onmouseover="menuMouseover(event)" style="position:relative;width=100%;">

in:
HTML:
1
<div class="WinBalk" onmouseover="menuMouseover(event)" style="position:relative;width:100%;">

en vervolgens dit (regel 46 in de uiteindelijke bron (niet je php-bestand)):
JavaScript:
1
if(browser.isIE)menu=getContainerWith(window.event.srcElement,"DIV","menu");

in:
JavaScript:
1
if(browser.isIE)menu=getContainerWith(window.event.srcElement,"DIV","WinBalk");

Bij mij zie ik in FF en IE het menu en krijg in geen van beide een foutmelding.

[ Voor 11% gewijzigd door funkwurm op 17-07-2006 21:32 . Reden: typo ]


  • WormLord
  • Registratie: September 2003
  • Laatst online: 01-12-2025

WormLord

Devver

Het is ook niet zo vreemd dat het menu verdwijnt met mijn oplossing.
In je css-file staat dit:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* De achtergrondkleur van de submenu's */
div.menu {
background-color: #C0C0C0;
/* background: url(http://www.bureauvanrossum.nl/website/menu.png) */

border: 1px solid;
border-color: #000000 #000000 #000000 #000000;
left: 0px;
padding: 0px 1px 1px 0px;
position: absolute;
top: 0px;
visibility: hidden;
z-index: 101;
}

Oftewel, divjes met class 'menu' worden verborgen.
Als ik dan met css test en de html regel vervang door
HTML:
1
<div class="menu WinBalk" onmouseover="menuMouseover(event)" style="position:relative;width:100%;visibility:visible;">

dan zie ik een menu, krijg ik geen javascript errors meer en krijg ik een sub-menu als ik op 'Producten' klik.

  • WormLord
  • Registratie: September 2003
  • Laatst online: 01-12-2025

WormLord

Devver

vriesdude schreef op maandag 17 juli 2006 @ 21:15:
Oplossing:

code:
1
2
3
function menuMouseover(event){var menu;
if(browser.isIE)menu=getContainerWith(window.event.srcElement,"DIV","menu");
else menu=event.currentTarget;if(menu.activeItem!=null)closeSubMenu(menu);}


Veranderen in:

code:
1
2
3
4
5
6
7
8
9
10
11
function menuMouseover(event){var menu;
    if(browser.isIE) {
        menu=getContainerWith(window.event.srcElement,"DIV","menu");
    } else {
        menu=event.currentTarget;
        
        if (menu.activeItem!=null) { 
            closeSubMenu(menu);
        }
    }
}


Uitleg: Omdat er niet afgemaakte IF-jes gebruikt worden (niet verboden overigens) is het een beetje natte vingerwerk hoe deze geinterpreteerd worden. Daarom is het verstandiger om altijd alles voluit te schrijven. Het is duidelijker en het werkt beter.
Niet afgemaakte IF-jes, zoals jij ze noemt, zijn zeker geen natte vingerwerk, maar gewoon wat minder makelijk met aanpassingen. De juiste uitwerking met code-blocks zou trouwens zijn:
code:
1
2
3
4
5
6
7
8
9
10
11
function menuMouseover(event){var menu;
    if(browser.isIE) {
        menu=getContainerWith(window.event.srcElement,"DIV","menu");
    } else {
        menu=event.currentTarget;
    }

    if (menu.activeItem!=null) { 
        closeSubMenu(menu);
    }
}

Maar, zoals al gezegd, dit heeft niets met het probleem van de TS te maken.

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 13-02 06:01
WormLord schreef op dinsdag 18 juli 2006 @ 08:14:
[...]

Maar, zoals al gezegd, dit heeft niets met het probleem van de TS te maken.
Ik heb emiel via msn die oplossing die ik al eerder noemde, en dat toch echt de oplossing 8),
IE intrepreteerde het geheel net niet helemaal lekker op :+

/dev/null

Pagina: 1