Avatar billede reflex Nybegynder
02. september 2001 - 15:28 Der er 13 kommentarer og
2 løsninger

Preload af side

Hey,

Jeg ved godt spørgsmåler er blevet stillet flere gange her på eksperten, men jeg syntes ikke jeg kunne bruge noget af det.

Jeg skal bruge et script der preloader resten af en html side (billeder, tekst osv.) ved at vise en tekst eller en lille gif-animation.

Ps. det hele skal foregå på samme side og ikke en redirect til en ny fil.

/Reflex
Avatar billede speedy Nybegynder
02. september 2001 - 15:46 #1
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY onLoad=\"document.getElementById(\'loading\').style.visibility = \'hidden\';    document.getElementById(\'siden\').style.visibility = \'visible\';\">
    <DIV id=\"loading\" style=\"position: absolute; visibility: visible;\">Loading....<IMG src=\"test.jpg\"></DIV>
    <DIV id=\"siden\" style=\"visibility: hidden;\">Sidens indhold</DIV>
</BODY>
</HTML>

Dette skulle vise det der står i mellem de to første DIV-tags mens den loader, og derefter det mellem de næste to DIV-tags
Avatar billede olebole Juniormester
02. september 2001 - 15:54 #2
<ole>
Hvorfor vender du ikke denne side - du i øjeblikket sidder og læser - om på vrangen og kopierer, hvad Eksperten gør? Det er der masser af andre, der har gjort i tidens løb  =oD
/mvh
</bole>
Avatar billede olebole Juniormester
02. september 2001 - 15:56 #3
speedy >> Hvorfor VIL du ikke have, alle de med Win98 kan bruge det, du laver?
Dit script duer ikke i IE4.x - og det har alle de rigtig mange, der stadig kører Win98.
/mvh
Avatar billede speedy Nybegynder
02. september 2001 - 16:20 #4
jeg kan godt huske du skrev noget om det i et af mine gamle spørgsmål, men nu er det sådan at jeg ikke kan huske hvordan det er med hvilke browsere der kan hvad, og hvilke der ikke kan.

Så jeg bruger bare den jeg selv kan huske, og som virker hos mig ;)

Men jeg har da ikke noget imod hvis du fortalte det igen hvordan og hvorledes ;)

/SpEeDy
Avatar billede speedy Nybegynder
02. september 2001 - 16:22 #5
men da jeg i sin tid (for et halvt år siden ;) lærte javascript, lærte jeg kun den med getElementById, og derfor sidder den som en \"vane\" når jeg laver JS.

/SpEeDy
Avatar billede reflex Nybegynder
02. september 2001 - 16:54 #6
Du har ret Ole man burde kunne bruge denne fra Eksperten men det kunne jeg heller ikke få til at virke. Enten går der noget tabt i PHP\'en når man viser kilden eller osse har jeg klokket i det et eller andet sted hummm...

Kender i andre sider der bruger en preloader som ikke er lavet i Flash som man kunne \"låne\" ?

/Reflex
Avatar billede olebole Juniormester
02. september 2001 - 16:56 #7
Okay  ;o)
Efter den \'nye\' DOM (Document Object Model), som bl.a. er implementeret i IE5+ og NS6+, hedder det:
  document.getElementById(\"din_ID\")
I IE4.x hedder det:
  document.all[\"din_ID\"]  eller  document.all.din_ID
I NS¤.x hedder det:
  document.layers[\"din_ID\"]  eller  document.layers.din_ID
/mvh
Avatar billede reflex Nybegynder
02. september 2001 - 16:56 #8
Kan man i øvrigt ikke lave det i PHP og ville det ikke være en fordel?

/Reflex
Avatar billede speedy Nybegynder
02. september 2001 - 17:09 #9
olebole>>Tak! ;)

reflex>> mit det virker da. Prøv det ;)

Herunder har jeg omskrevet det så det virker til IE4.x og større ;)

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY onLoad=\"document.all[\'loading\'].style.visibility = \'hidden\';    document.all[\'siden\'].style.visibility = \'visible\';\">
    <DIV id=\"loading\" style=\"position: absolute; visibility: visible;\">Loading....<IMG src=\"test.jpg\"></DIV>
    <DIV id=\"siden\" style=\"visibility: hidden;\">Sidens indhold</DIV>
</BODY>
</HTML>

/SpEeDy
Avatar billede reflex Nybegynder
02. september 2001 - 17:38 #10
Tja den virker måske, men jeg troede bare at preloaderen gemte siden indtil at var loadet ind for så at vise det hele til sidst.

Og ikke bare fortæller hvornår en side startes på at, blive loadet og hvornåd den er færdig.

/Reflex
Avatar billede speedy Nybegynder
02. september 2001 - 17:42 #11
det gør den da også. Mit eksempel viser \"Loading....\" indtil siden er indlæst, og så viser den hele siden derefter. Er det ikke det du vil ?? Så forstår jeg ikke dit spm.

/SpEeDy
Avatar billede olebole Juniormester
02. september 2001 - 17:48 #12
speedy >> Din virker kun í IE. Ekspertens virker - når den bliver renset for de værste fejl - mere X-browser:

<HTML>
<HEAD>

<SCRIPT TYPE=\"text/javascript\" LANGUAGE=\"JavaScript\">
    ns4 = (document.layers) ? true:false;
    ie4 = (document.all) ? true:false;

    function preload () {
        if (ns4) {
            document.layers.E.document.Epreload.visibility = \"hidden\";
            document.layers.E.document.Emain.visibility = \"visible\";
        } else if (ie4) {
            document.all[\"Epreload\"].style.visibility = \"hidden\";
            document.all[\"Emain\"].style.visibility = \"visible\";
        }
        else {
            document.getElementById(\"Epreload\").style.visibility = \"hidden\";
            document.getElementById(\"Emain\").style.visibility = \"visible\";
        }
    }

    // Netscape Resize Fix

    function resizeFix() {
        if (widthCheck != window.innerWidth || heightCheck != window.innerHeight) {
            document.location.href = document.location.href;
        }
    }

    if (ns4) {
        widthCheck = window.innerWidth;
        heightCheck = window.innerHeight;
        window.onResize = resizeFix;
    }
</SCRIPT>

</HEAD>
<BODY>

<DIV ID=\"E\" STYLE=\"visibility:visible;\" ALIGN=\"center\">
<DIV ID=\"Epreload\" STYLE=\"position:absolute;visibility:visible;top:20%;\">
<SCRIPT TYPE=\"text/javascript\" LANGUAGE=\"JavaScript\">
    <!-- Eksperten.dk --
        if (ns4 || ie4) {
            document.write(\'<CENTER><IMG SRC=\"e_preload.gif\" WIDTH=\"344\" HEIGHT=\"141\" ALT=\"\" BORDER=\"0\"></CENTER>\');
        }
        if (ie4) {
            document.all[\"Epreload\"].style.left = \"30%\";
        }
    // Eksperten.dk -->
</SCRIPT>
</DIV>
<DIV ID=\"Emain\" STYLE=\"visibility:hidden;\" ALIGN=\"center\">

************* INDHOLD HER ***************

</DIV>
</DIV>

<SCRIPT TYPE=\"text/javascript\" LANGUAGE=\"JavaScript\">
preload();
</SCRIPT>

</BODY>
</HTML>

...men det kræver selvfølgelig, at der ligger noget halvtungt indhold på siden, før man kan nå at se det virke  :)
/mvh
Avatar billede reflex Nybegynder
02. september 2001 - 21:40 #13
Jeg har prøvet dit eksempel Ole, og jeg kunne ikke få det til at virke i en kode som loader 15-20 billeder, men det virkede da jeg flettede det ind i min gæstebog som bruger php og mysql. (over 70 indlæg)

Men det må jo være fordi der ikke var nok at vise første gang, eller fordi jeg bruger adsl.

/Reflex
Avatar billede olebole Juniormester
02. september 2001 - 22:14 #14
Prøv at tømme din cashe. Du henter billederne derfra - ikke fra nettet - når du har haft dem loaded én gang  :)
/mvh
Avatar billede stauer Nybegynder
18. juni 2002 - 15:53 #15
>olebole

burde denne preloader virke uafhængig af anden javascript på siden. Se evt. www.bestbehavior.dk - jeg har prøvet ekspertens preloader som du har skrevet, og det ser ud til at virke bortset fra den ikke fjerner min preload div
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