Avatar billede pelkjaer Nybegynder
28. maj 2002 - 14:00 Der er 4 kommentarer og
1 løsning

Tilpas script til NS6 - haster lidt

Jeg vil gerne have dette tilpasset så det også virker i NS6 (skal virke i IE5+ og NS6)

<script type=text/javascript>
function vis(txt) {
    var tekst = new String(' ' + txt + '  ');
    document.all.titelen.innerHTML=' ' + txt + '  ';
    document.all.titelen.style.display='block';
    document.all.titelen.style.top=event.clientY + 20 + document.body.scrollTop;
    document.all.titelen.style.left=event.clientX + document.body.scrollLeft;
    document.all.titelen.style.width = tekst.length * 6;
}
function uvis() {
    document.all.titelen.style.display='none';
}
function foelg() {
    mus = 0;
    if (document.all.titelen.style.display=='block') {
    document.all.titelen.style.top=event.clientY + 20 + document.body.scrollTop;
    document.all.titelen.style.left=event.clientX + document.body.scrollLeft;
    }
}
</script>

Jeg har prøvet at udskifte

document.all med
document.getElementById("titelen").innerHTML=

samt
clientX /Y med
pageX / Y
Avatar billede jakoba Nybegynder
28. maj 2002 - 14:16 #1
//NB: duer ikke for NS4. og nok heller ikke Opera, Konquere, ...
    if (ns6) {
        ditDivObj = document.getElementById("titelen");
        ditDivObj.document.open( 'text/html', 'replace' );
        ditDivObj.document.write( aStrt[mode] +txt +a_end );
        ditDivObj.document.close( );
    } else { // IE
        ditDivObj = document.all["titelen"];
        ditDivObj.innerHTML = aStrt[mode] +txt +a_end;
    }
    ditDivObj.style.left = x;
    ditDivObj.style.top = y;

der mangler stadig korrekt håndtering af events. IE laver et globalt objekt event til dig (og løber så risikoen for at der skulle ske en anden event inden du får den events data håndteret)

I NS skal du specifikt fange din event idet den sker og give den med som parameter til det sted den skal bruges.

mvh JakobA
Avatar billede jakoba Nybegynder
28. maj 2002 - 14:29 #2
Hvis du fx har sat funktionen foelg som onmousemove handeler vil NS kalde den funktion med en parameter der er det eventobjekt du skal bruge.

function foelg(NSevent) {
    var minX, minY;
    if ( ns ) {
        minX = NSevent.x; // men der er andre attributter, det måske kan være du mener.
        minY = NSevent.y +20;
    } else {
        minY = event.clientY + 20 + document.body.scrollTop;
        minX = event.clientX + document.body.scrollLeft;
    }
    mus = 0;
    ditDivObj = (ns6?document.getElementById("titelen"):document.all["titelen"]
    if (ditDivObj.style.display=='block') {
    ditDivObj.style.top=minY;
    ditDivObj.style.left=minX;
    }
}

window.onmousemove = foelg;
Avatar billede pelkjaer Nybegynder
28. maj 2002 - 15:01 #3
Endnu engang redder du min dag :o)
Smid et svar.
Avatar billede jakoba Nybegynder
28. maj 2002 - 15:04 #4
anytime :-)
Avatar billede pelkjaer Nybegynder
28. maj 2002 - 21:43 #5
Takker
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