Avatar billede kak Nybegynder
04. marts 2003 - 09:14 Der er 8 kommentarer og
1 løsning

Javascript i IE kontra Netscape

Jeg har et lille script, der aktiveres ved "onmouseover" i én ramme. Handlingen sker i en anden ramme med denne linie:

window.parent.leftframe['sub' + i].style.left = '2';

"i" er naturligvis det parameter jeg sender ind i funktionen, og det virker fint i IE. Men i Netscape (6.2) virker det ikke. JavaScript consol siger "window.parent.leftframe['sub' + i] has no properties"?
Avatar billede kak Nybegynder
04. marts 2003 - 09:23 #1
Jeg har lige opdaget, at den samme fejl gælder, selvom man ikke kalder en anden ramme. Dette her virker f.eks. heller ikke i Netscape, men fint i IE:
document.getElementById('menu' + hvem).style.background
Avatar billede olebole Juniormester
04. marts 2003 - 13:18 #2
<ole>

At den første virker i _nogen_ browser kan man vel undre sig over  :)

Det andet virker fint i NS - men det kommer selvfølgelig an på, hvordan du bruger det.

Prøv at lægge en URL til siden og en forklaring på, hvad du vil lave

/mvh
</bole>
Avatar billede kak Nybegynder
04. marts 2003 - 13:41 #3
Det ligger kun på min egen maskine indtil videre. Men du får lidt kode her:
function switchplace(i) {
    window.parent.leftframe['sub' + i].style.left = '2';
    window.parent.leftframe['sub' + i].style.top = '10'; }
.....
<div id="menu1" style="background-color='blue';height:'16px';cursor:hand" onmouseover="java script:switchplace(1);">
...

Når man holder musen over "menu1" i én ramme, skal "sub1" altså skifte placering i en anden ramme.
Avatar billede olebole Juniormester
04. marts 2003 - 14:20 #4
parent.leftframe.document.getElementById('sub' + i).style.left = '2';
Avatar billede olebole Juniormester
04. marts 2003 - 14:21 #5
Og så skal du _aldrig_ bruge JavaScript-pseudo-protokollen i en event-handler:
  onmouseover="switchplace(1);"
Avatar billede kak Nybegynder
04. marts 2003 - 16:11 #6
Det virker! Kan du evt. lige fortælle mig, hvad nedenstående skal rettes til, for at virke i Netscape:

window.onscroll = minFunktion;
Avatar billede olebole Juniormester
04. marts 2003 - 16:16 #7
onscroll-event'en er proprietær MS. Der findes ikke umiddelbart nogen standardiseret erstatning
/mvh
Avatar billede kak Nybegynder
04. marts 2003 - 16:18 #8
Er der slet ikke noget man kan bruge? Jeg har set funktionen (eller en tilsvarende) et par steder.
Idéen er naturligvis, at få et element til at blive samme sted, selvom der scrolles.

(opretter du lige et svar, så du kan få point?)
Avatar billede olebole Juniormester
04. marts 2003 - 22:01 #9
Et hurtigt bud:

<html>
<head>
<style type="text/css">
#testDiv {
    position: absolute;
    right: 10px;
    border: 1px solid red;
    z-index: 10;
}
</style>
<script type="text/JavaScript">
var topOffs = 20; // Div'ets top-offset i pixels
var ie, ns, myScrollY, scrollTimer, oDiv, d=document;
ie = (d.all)? true : false;
ns = (d.getElementById && !d.all)? true : false;
function nsScroll() {
    if (window.pageYOffset!=myScrollY) oDiv.style.top = myScrollY = window.pageYOffset + topOffs;
    scrollTimer = setTimeout("nsScroll()", 50);
}
function nsScrollStop() {
    setTimeout("clearTimeout("+scrollTimer+")", 100);
}
function ieScroll() {
    oDiv.style.top = d.body.scrollTop + topOffs;
}
if (ns) d.onmousedown = nsScroll;
if (ns) d.onmouseup = nsScrollStop;
if (ie) window.onscroll = ieScroll;
window.onload = function() {
    myScrollTop = (ns)? window.pageYOffset : d.body.scrollTop;
    oDiv = d.getElementById("testDiv");
    oDiv.style.top = myScrollTop + topOffs;
}
</script>
</head>
<body>
<div id="testDiv">Bla blabla bla</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</body>
</html>
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