Avatar billede kickmrb Nybegynder
03. april 2004 - 18:24 Der er 9 kommentarer

Uden om Netscape

Hey eksperter

Jeg er igang med at lave en lille hjemmeside, men min preloder virker i nogle Netscape udgaver.

Så mit ønske er at sende alle besøgende med alle andre browser end IE direkte til forsiden efter preloaderen. kan dette lade sig gøre og hvordan.

på forhånd tak

Mike
Avatar billede roenving Novice
03. april 2004 - 18:45 #1
Så har du sandsynligvis lavet din preloader på en uhensigtsmæssig måde, for de virker fortrinligt med de preloadere jag har set og prøvet !-)

Prøv at vise/fortælle hvad du gør i preloaderen, så kan vi sikkert nemt få den til at virke cross-browser !-)
Avatar billede kickmrb Nybegynder
03. april 2004 - 18:52 #2
here goes

<!-- Påbegynd gem

    var locationAfterPreload = "index2.html" // URL of the page after preload finishes
    var lengthOfPreloadBar = 150 // Length of preload bar (in pixels)
    var heightOfPreloadBar = 15 // Height of preload bar (in pixels)
   
    // Alle billeder der skal på sitet skal have deres egne urls
    var yourImages = new Array("http://www.blabla.com/images/index_04.gif","http://www.blabla.com/images/index_05.gif")


if (document.images) {
    var dots = new Array()
    dots[0] = new Image(17,1)
    dots[0].src = "Transparent Back.gif" // Bag loaderbar
    dots[1] = new Image(17,1)
    dots[1].src = "Loader Bar.gif" // Farven på loaderbaren
    var preImages = new Array(),coverage = Math.floor(lengthOfPreloadBar/yourImages.length),currCount = 0
    var loaded = new Array(),i,covered,timerID
    var leftOverWidth = lengthOfPreloadBar%coverage
}
function loadImages() {
    for (i = 0; i < yourImages.length; i++) {
        preImages[i] = new Image()
        preImages[i].src = yourImages[i]
    }
    for (i = 0; i < preImages.length; i++) {
        loaded[i] = false
    }
    checkLoad()
}
function checkLoad() {
    if (currCount == preImages.length) {
        location.replace(locationAfterPreload)
        return
    }
    for (i = 0; i <= preImages.length; i++) {
        if (loaded[i] == false && preImages[i].complete) {
            loaded[i] = true
            eval("document.img" + currCount + ".src=dots[1].src")
            currCount++
        }
    }
    timerID = setTimeout("checkLoad()",10)
}
</script>
</HEAD>
<BODY BGCOLOR=#CBD6A7 LEFTMARGIN=0 TOPMARGIN=300 MARGINWIDTH=0 MARGINHEIGHT=0>
<TABLE WIDTH=350 BORDER=0 align="center" CELLPADDING=0 CELLSPACING=0>
  <TR>
        <TD COLSPAN=3>
            <IMG SRC="images/index_01.gif" WIDTH=350 HEIGHT=139 ALT=""></TD>
    </TR>
    <TR>
        <TD ROWSPAN=2>
            <IMG SRC="images/index_02.gif" WIDTH=99 HEIGHT=41 ALT=""></TD>
       
    <TD> <table width="154" height="19" border="0" align="center" cellpadding="0" cellspacing="0" background="Bevel2.gif">
        <tr>
          <td width="0" height="0" align="center"> <script language="JavaScript1.1">

if (document.images) {
    var preloadBar = ''
    for (i = 0; i < yourImages.length-1; i++) {
        preloadBar += '<img src="' + dots[0].src + '" width="' + coverage + '" height="' + heightOfPreloadBar + '" name="img' + i + '" align="absmiddle">'
    }
    preloadBar += '<img src="' + dots[0].src + '" width="' + (leftOverWidth+coverage) + '" height="' + heightOfPreloadBar + '" name="img' + (yourImages.length-1) + '" align="absmiddle">'
    document.write(preloadBar)
    loadImages()
}

</script></td>
        </tr>
      </table></TD>
        <TD ROWSPAN=2>
            <IMG SRC="images/index_04.gif" WIDTH=97 HEIGHT=41 ALT=""></TD>
    </TR>
    <TR>
        <TD>
            <IMG SRC="images/index_05.gif" WIDTH=154 HEIGHT=22 ALT=""></TD>
    </TR>
</TABLE>
</BODY>
</HTML>
Avatar billede kickmrb Nybegynder
03. april 2004 - 18:54 #3
roenving som du kan se har jeg, placeret noget script nede i tabellen, da det er den eneste måde jeg kan få det grafiske ønsket resultat, men det er sikkert derfor netscape ikke viser det korrekt
Avatar billede roenving Novice
03. april 2004 - 19:09 #4
Det er der ikke noget galt i, script kan lægges praktisk talt overalt i en html-fil, dog vil jeg absolut fraråde at lægge det før <html> eller efter </html> selvom det faktik vil virke i en del tilfælde ...

Men udskift denne linje:

            eval("document.img" + currCount + ".src=dots[1].src")

Med:

            document.images['img' + currCount].src=dots[1].src;

-- det var det eneste, jeg kunne finde ved en hurtig gennemgang, men den ligner også en sandsynlig kilde ...

-- og både ie og Moz/NS-brugere vil så også have glæde af den langt hurtigere eksekvering !-)
Avatar billede kickmrb Nybegynder
03. april 2004 - 19:15 #5
takker for forslaget, det hjalp dog desværre ikke på netscape problemet, men har du et script der sender alle der ikke bruger IE videre
Avatar billede roenving Novice
03. april 2004 - 19:57 #6
Der var zq en mere:

function checkLoad() {
    if (currCount == preImages.length) {
        location.replace(locationAfterPreload);
        return;
    }
    for (i = 0; preImages.length>i; i++) {
        if (loaded[i] == false && preImages[i].complete) {
            loaded[i] = true;
            document.images["img" + currCount].src=dots[1].src;
            currCount++;
        }
    }
    timerID = setTimeout("checkLoad()",10);
}
</script>

-- du skal udkifte linjen, hvor du har eval !-)

-- og </script> er med, så du kan finde det ...

-- og jeg har lige prøvet den med 15 billeder, og så funker den fint på min Mozilla ...
Avatar billede kickmrb Nybegynder
03. april 2004 - 20:08 #7
har prøvet, stadigt fuck up, netscape viser ikke siden korrekt overhovedet, dvs designet er helt hen i vejret.
Avatar billede roenving Novice
03. april 2004 - 20:15 #8
Nu har jeg jo så ikke den fjerneste anelse, om hvordan det skal se ud, men helt generelt er det sådan, at IE har en utrolig mængde fejlrettelseskode indbygget (hvorfor den også er den sikkert langsomste bruser på markedet), hvilket betyder, at den prøver at gætte sig til, hvad det er programmøren har ment, hvis der er noget som ikke er korrekt ...

De fleste andre browsere accepterer, at det, som programmøren har lavet, er det hun/han vil have, og derfor kan du kun regne med at det er ens, hvis du 100% overholder standarderne !-)
Avatar billede olebole Juniormester
03. april 2004 - 22:15 #9
<ole>

På mange parametre er IE den langsommeste - på færre er Opera den langsommeste - og på færre igen er Moz den langsommeste ... men at IE er _den_ langsommeste, er lidt for 'flot' slået fast  ;o)

Men derudover er jeg enig: Det lyder som andre kodefejl  :)

/mvh
</bole>
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