Denna kod fungerar ej i Mozilla och Netscape, hur bör man göra?
function getViewportHeight() {
// Mozilla, Opera, Safari
if(window.innerHeight)
return window.innerHeight;
// standards mode i IE, men ingen annan mode
if(window.document.documentElement.clientHeight)
return document.documentElement.clientHeight;
// quirks mode, äldre versioner av IE, och mac IE (allt annat).
return window.document.body.clientHeight;
}
JojoxxMedlem sedan juni 20004 308 inlägg Fungerar för mig både i Netscape 4.07 och Mozilla 1.0. Kanske felet ligger i någon annan del av scriptet?
Okej, här ligger tydligen felet:
sondera.style.top = toppos;
sondera.style.left = leftpos;
Har alltså en div som har id sondera. Hur skall man skriva i netscape/mozilla?
JojoxxMedlem sedan juni 20004 308 inlägg Ta en titt här, i detta fall moveLayerAbs(). Där ser du exempel för (gammal) IE, Netscape och Mozilla w3c-dom.
Tillägg:
kolla även så att toppos och leftpos är heltal. Jag har för mig att bl.a. gamla Netscape-versioner är känsliga för att placera något på 45.57 pixlar :)
Jag får hela tiden detta fel när jag försöker använda mig av de funktionerna:
'document.all[...].style' är null eller inte ett objekt.
Här e koden:
if (document.all){
document.all[sondera].style.left = leftpos; document.all[sondera].style.top = toppos;
} else if (document.layers){
document.layers[sondera].left = leftpos; document.layers[sondera].top = toppos;
} else if (document.getElementById){
document.getElementById(sondera).style.left = leftpos+'px'; document.getElementById(sondera).style.top = toppos+'px';
}
Peter SMedlem sedan dec. 20025 483 inlägg Sätt ett par "snuffar" kring ordet sondera så skall det gå bra.
:)
Okej, det fungerade ju bra (tackar), men om jag skulle vilja göra så här typ:
if (document.all){
document.all[ruta].style.background = A9AAD0;
} else if (document.layers){
document.layers[ruta].background = A9AAD0;
} else if (document.getElementById){
document.getElementById(ruta).style.background = A9AAD0;
}
och sen kunna ändra "ruta" till något typ så här:
onmouseover="light(test)"
om man skrev light('test') fungerade det inte.. Hur gör man då?
Peter SMedlem sedan dec. 20025 483 inlägg ...onmouseover="light('test')"...
Sedan skall den hexadecimala koden föregås av en "brädgård" ( # ), samt omges av ett par "snuffar".
:)
Jamen detta funkar fortfarande inte!
function light(ruta) {
if (document.all){
document.all[ruta].style.background = '#A9AAD0';
} else if (document.layers){
document.layers[ruta].background = '#A9AAD0';
} else if (document.getElementById){
document.getElementById(ruta).style.background = '#A9AAD0';
}
}
och sen detta:
onmouseover="light(div1);"
Jesper TMedlem sedan nov. 20017 144 inlägg onmouseover="light('div1');"
Peter SMedlem sedan dec. 20025 483 inlägg Läs hela mitt förra inlägg ;)
:)
Men det fungerar liksom inte då heller. Fast det är iförsig så att istället så försvinner div:en. Kan ju ha med något annat att göra.
Jesper TMedlem sedan nov. 20017 144 inlägg Försvinner gör den då inte med denna kod. Eventuellt så har du satt en färg i ett css som gör att den inte syns. Men försvinner gör den inte. ;)