Click auf Link verzögert ausführen bzw. Seite verzögert laden.



  • hi, welche möglichkeiten gibt es, eine seite verzögert zu laden? Javascript nehme ich an? wenn ja, wie?
    thx, yours web-noob
    🙂



  • web-noob schrieb:

    hi, welche möglichkeiten gibt es, eine seite verzögert zu laden? Javascript nehme ich an? wenn ja, wie?
    thx, yours web-noob
    🙂

    erstmal: was willst du bezwecken? User sind in der Regel schnell verwirrt, wenn etwas nicht so abläuft, wie sie es gewohnt sind.

    aber setTimeout() wär das, was du suchst



  • web-noob schrieb:

    hi, welche möglichkeiten gibt es, eine seite verzögert zu laden? Javascript nehme ich an? wenn ja, wie?
    thx, yours web-noob
    🙂

    Machs doch so:

    <script language="JavaScript">
    warte(link) {
    jetzt = new Date();
    biswann = jetzt.getTime() + 5000;
    while (jetzt.getTime() < biswann) {}
    window.location=link;
    }
    
    </script>
    <a href="javascript:warte('http://www.der-link.de/')">test</a>
    


  • Das Problem an der zweiten Variante ist, dass die Whileschleife evtl. den Browser veranlasst, das Script wegen zu hoher Auslastung zu beenden.
    Ich würde so vorgehen:

    - Link Klick per onclick-Handler abfangen
    - Timer registrieren (und alte ersetzen)
    - Nach Timeraufruf wird die Seite geladen



  • hi, danke für die tips.
    ich möchte, einen verzögerten klick auf einen link simulieren. also, ich habe einen frameset (menu und ein paar seiten). nach dem ersten laden soll eine kleine grafik angezeigt werden (wie ein sogenannter splash-screen) und nach etwa 3 sekunden soll einer der links 'automatisch' angeklickt werden. wie könnte man das machen?



  • okay, ich hab testweise was hinbekommen, funzt auch mit dem IE6, aber nicht mit dem firefox.
    fehlermeldung: Fehler: do_cument_.getEl_ementById("clk_target") has no properties
    was heisst das?
    (ohne die underscores. --> spamfilter 😡 )
    (sorry, kann den code nicht posten wegen des spamfilters)
    danke im voraus, euer web-noob.
    🙂



  • hm... ich dachte, ich hätt schon geantwortet oO

    naja... seis drum

    web-noob schrieb:

    okay, ich hab testweise was hinbekommen, funzt auch mit dem IE6, aber nicht mit dem firefox.
    fehlermeldung: Fehler: do_cument_.getEl_ementById("clk_target") has no properties
    was heisst das?
    (ohne die underscores. --> spamfilter 😡 )
    (sorry, kann den code nicht posten wegen des spamfilters)
    danke im voraus, euer web-noob.
    🙂

    ohne Code kann dir aber keiner helfen... wenn die Seite schon online ist, genügt auch ein Link...

    und nochmal: wenn du etwas zeitgesteuert ausführen willst, ist setTimeout() das, was du brauchst... in deinem Fall brauchst du nur eine JS-Funktion, die sich um das schließen des Fensters kümmert, mittels setTimeout aufrufen. Genaueres kann ich ohne Code deinerseits leider nicht sagen...

    @ºgrimmsenº®: deinen Vorschlag sollte man am Besten so nicht umsetzen (auch wenn die Funktionalität gegeben sein sollte).
    Erstens wegen der besagten Kontrolle seitens der Browser, dass eine JS-Funktion nicht zu viel Zeit beansprucht, andererseits, da ein User mit abgeschaltetem JS nur einen toten Link hat.
    Einen Link mit reiner JS-Funktionalität (wie es bei AJAX-Anwendungen oft der Fall ist) fügt man auch mit JS ein (so das er ohne JS garnicht erst sichtbar ist), in allen anderen Fällen sollte man auf das onclick-Attribut zurückgreifen und href für das eigentliche Ziel verwenden.
    onclick wird zuerst aufgerufen. Allerdings würde bei einem simplen <a href="link.htm" onclick="warte('link.htm')">Link</a> der Link trotzdem sofort geöffnet werden (obwohl die Funktion warte() zuerst aufgerufen wird). Ein simples return false; innerhalb des onclick-Attributes sollte Abhilfe schaffen



  • zwutz schrieb:

    und nochmal: wenn du etwas zeitgesteuert ausführen willst, ist setTimeout() das, was du brauchst... in deinem Fall brauchst du nur eine JS-Funktion, die sich um das schließen des Fensters kümmert, mittels setTimeout aufrufen.

    genau das mache ich auch. leider versagt dabei der firefox den dienst, während IE6 ohne meckern mitspielt. FF meldet obigen fehler, aber leider gelingt es mir nicht, wegen des spamfilters den code zu posten. ich habe schon versucht, den JS-teil ans untere ende zu setzen bzw. erst nach dem 'onload' event auszuführen. bisher jedoch ohne erfolg.
    🙂



  • Hallo,

    hört sich so an, als würde das Objekt auf das du mit get Element by Id zugreifen möchtestest, nicht existieren. Sicher dass die Funktion != null zurückliefert?
    Installier dir mal die Firebugextension und aktiviere die Javascript Konsole, dann weißt du es mit Gewissheit.
    Wenn der Spamfilter so stresst -> http://rafb.net/paste hier posten



  • hier ist es --> http://rafb.net/p/aWMPaE37.html
    wie gesagt, geht im IE, aber nicht im FF.
    den script-debugger hab' ich noch nicht drauf, aber vielleicht seht ihr ja schon was.
    🙂



  • dein Link hat nicht die ID "clktarget", also kannst du mit getElementById auch nicht darauf zugreifen...

    <a id="clktarget" href="testpage.html" target="inhalt">click_me</a><br />



  • danke vielmals!
    aber wieso gehts denn im IE? reicht nicht: name="clktarget" 😕


Anmelden zum Antworten