Avatar billede decrypto Nybegynder
20. januar 2003 - 16:48 Der er 18 kommentarer og
1 løsning

Browser problemer

Hejsa jeg prøver at lave websider kompatible med IE 6.0 og Netscape 7.0.

Problemet er at jeg har lavet noget kode, der virker under IE, men ikke rigtigt under Netscape. Der kommer dog ikke nogen fejl i Netscape.

Så der må være noget der skal kodes anderledes, men jeg kan bare ikke finde ud af, hvad det er.

//---Min kode---
function SideMenuPktShow(SideMenuPkt, MenuPktPic){
    var SideMenuPkt;
    var MenuPktPic;
    var objSideMenuFillHide;
    var objSideMenuPic;
    var objSideMenuHideAll;
    var objSideMenuShowTxt;
   
    //Skjul alle menupunkt markér billeder
    i = 1;
    objSideMenuFillHide = eval('document.getElementById("MenuPktPic'+i+'")');
   
    while(objSideMenuFillHide=='[object]'){
        objSideMenuFillHide.src='gfx/mark_blank.gif';
        i++;
        objSideMenuFillHide = eval('document.getElementById("MenuPktPic'+i+'")');
    }

    //Marker den valgte
    objSideMenuPic = eval('document.getElementById("'+MenuPktPic+'")');
    objSideMenuPic.src='gfx/marked.gif';
   
    //Skjul alt tekst
    i = 1;
    objSideMenuHideAll = eval('document.getElementById("SideMenuPkt'+i+'")');
   
    while(objSideMenuHideAll=='[object]'){
        objSideMenuHideAll.style.display='none';
        i++;
        objSideMenuHideAll = eval('document.getElementById("SideMenuPkt'+i+'")');
    }
   
    //Vis tekst for det valgte sidemenupunkt
    objSideMenuShowTxt = eval('document.getElementById("'+SideMenuPkt+'")');
    if(objSideMenuShowTxt=='[object]'){
        objSideMenuShowTxt.style.display='';
    }
}
//---slut-----

Er der nogen derude, der ved hvad der skal gøres anderledes?
Avatar billede decrypto Nybegynder
20. januar 2003 - 16:54 #1
Jeg ved det er i mine "skjul"-kodelinjer der er noget galt med. Muligvis den måde man laver løkker på. Eller hvad???

/dEcRyPtO
Avatar billede =maddog= Nybegynder
20. januar 2003 - 16:56 #2
objSideMenuShowTxt.style.display='block';
i stedet for
objSideMenuShowTxt.style.display='';
vil jeg tro.
Avatar billede decrypto Nybegynder
20. januar 2003 - 16:59 #3
Virker det også i en IE?
Avatar billede =maddog= Nybegynder
20. januar 2003 - 17:02 #4
Jepz. W3C standard you know. Der er flere typer display i standarden, men IE understøtter i hvert fald in-line, block og none.
Avatar billede decrypto Nybegynder
20. januar 2003 - 17:02 #5
Problemet ligger også i.

objSideMenuFillHide.src='gfx/mark_blank.gif';

NS har problemer med at skifte billede. Er der noget i den her linje, der skal gøres om?
Avatar billede decrypto Nybegynder
20. januar 2003 - 17:08 #6
objSideMenuShowTxt.style.display='block';

Virker ikke i NS, men virker i IE.

Jeg har ændret
objSideMenuShowTxt.style.display='';
til
objSideMenuShowTxt.style.display='block';

skal der ændres i objSideMenuShowTxt.style.display='none';???

Eller hvad kan problemet være?
Avatar billede =maddog= Nybegynder
20. januar 2003 - 17:21 #7
lad os nu tage billedet så. du skal sikkert angive en absolut URL.
var NS6 = (document.getElementByID&&!document.all)?true:false;
var base = (NS6)?document.location.href.substring(0,document.location.href.lastIndexOf('/')+1):"";
først i scriptet og så
objSideMenuFillHide.src=base+'gfx/mark_blank.gif';
du skal under alle omstændigheder have display="block" når punkterne skal vises. 100% sikker.
Avatar billede decrypto Nybegynder
20. januar 2003 - 17:27 #8
hmmm virker ikke. Jeg tester i NS7 og ikke NS6... men det er nok ikke det.

Virker ellers stadigvæk i IE6
Avatar billede =maddog= Nybegynder
20. januar 2003 - 17:30 #9
vær lige sikker på at det bliver den rigtige url. prøv at få det ud med
<script>
document.write(base+'gfx/mark_blank.gif');
</script>
nede i body
Avatar billede decrypto Nybegynder
20. januar 2003 - 17:43 #10
URL'en er rigtig nok....
Avatar billede decrypto Nybegynder
20. januar 2003 - 17:44 #11
fungerer stadigvæk kun i IE.
Avatar billede =maddog= Nybegynder
20. januar 2003 - 17:48 #12
well. du har formodentlig en overordnet idé med din kodes struktur. sådan som det ser ud nu kan jeg ikke hjælpe yderligere.
Avatar billede decrypto Nybegynder
20. januar 2003 - 17:49 #13
Den går jo slet ikke ind  i løkken. Det må være den her sætning der er noget galt med.

while(objSideMenuFillHide=='[object]'){
  /*
  Skjul billede....
  */
}
Er der nogen der kan gennemskue det?
Avatar billede =maddog= Nybegynder
20. januar 2003 - 18:07 #14
Jeg tror ærligt talt at det ikke duer med =="[object]" i NS. Prøv at få den til at fortælle dig det (med alert(objSideMenuFillHide)). Den korrekte syntax er da vist objSideMenuFillHide instanceof Object eller evt. objSideMenuFillHide.constructor == Object, men det er jeg egentlig bange for at IE ikke æder.
Avatar billede decrypto Nybegynder
20. januar 2003 - 18:09 #15
Vi prøver....
Avatar billede decrypto Nybegynder
20. januar 2003 - 18:23 #16
alert(objSideMenuFillHide=='[object]');

Returnerer 'True' i IE, men 'False' i NS...

Leder stadigvæk efter en løsning på nettet. Men Spørgsmålet er stadigvæk aktivt.

Jeg vil ellers hæve point'ne, men jeg er sikker på at spørgsmålet har været stillet før.
Avatar billede decrypto Nybegynder
20. januar 2003 - 19:34 #17
Sidder stadigvæk med problemet.....

Er der andre JavaScript eksperter derude???

/dEcRyPtO
Avatar billede decrypto Nybegynder
20. januar 2003 - 20:19 #18
fandt selv ud af det.
Avatar billede decrypto Nybegynder
20. januar 2003 - 20:21 #19
Man kan ikke sammenligne med [object] i NS, da den returnerer noget andet. Helt specifikt returnerer den [object HTMLimageElement].
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