HTML Link beim "Klick" mit 5 Sekunden Verzögerung aufrufen?

4 Antworten

Ich habe das Gefühl, Stackoverflow ist dir zu "professionell", "Kompliziert". Ich habe jetzt mal ein kleines Script samt dem A Link geschrieben dass die URL aus dem HREF Attribut nach 5 Sekunden aufruft. Die Zeit(5 Sekunden) kannst du übrigens im neuen (von mir jetzt erstellten) Attribut Namens "data-delay" speichern. da kommt eine Zahl wie 5000 für 5 Sekunden (5 tausend Millisekunden) rein.

Das folgende Code-Schnipsel bindest du am besten ans Ende deines Body tags oder in den HEAD Tag ein, ok?

<script type="text/javascript">function linkAfterDelay(dies) { var url = dies.getAttribute("href"); var delay = dies.getAttribute("data-delay"); setTimeout(function() { location.href = url; }, delay); }</script>

Wenn das nicht funktioniert benutzt du den IE. Dann musst du

location.href

durch

window.location.href

oder

location

oder 

window.location

oder

window.href

ersetzten. (Ich kenne mich mit dem IE nicht aus. Ist Softwareschrott)

Der "a" Tag sieht dann so aus:

<a href="http://github.com/MauriceConrad/MultiUI"; onclick="linkAfterDelay(this); return false;" data-delay="5000">Link</a>

(Als "href" habe ich jetzt mal als Platzhalter ein Javascript Framework von mir genommen(iOS Framework). Das musst du dann natürlich durch deine gewünschte URL ersetzten.)

Falls du Fragen hast, schreib in die Kommentare. Ich lese dir per E-Mail.


KoHRdH 
Beitragsersteller
 28.06.2015, 15:03

Wahnsinn, das funktioniert wunderbar! Zumindest am Computer...

...denn eigentlich war das was ich vor hatte als "Widget" für ein "offenes" iOS Gerät gedacht. Dort funktioniert es leider nicht, der Link wird nicht geöffnet.

0

Du sagst, es geht unter iOS nicht. Wie du vielleicht schon an dem github projekt geshen ahst, arbeite ich sehr viel mit iOS und kenne mi h daher bestens mit mobile Safari aus. 

Solange du mobile Safari ab iOS 6 benutzt, dürfte es keine Probleme geben. Bei mir auf einem iPad 2 geht alles. Das einzige was ich dir noch anbieten kann ist, statt einem  onlclick Event ein ontouchend zu nehmen. 

Dann siehst dein a Tag wie folgt aus:

<a href="http://github.com/MauriceConrad/MultiUI"; ontouchend="linkAfterDelay(this); return false;" data-delay="5000">Link</a>

Wenn das auch nicht geht, könnte man einen großen Umweg fahren. Unsauber aber möglich. Wie gesagt. Es muss eigenl ich funktionieren. Bei mir geht es auch. Kannst du mir außerdem mal den Link wo du es hochgeladen hast schicken? Danke.:) 


KoHRdH 
Beitragsersteller
 28.06.2015, 22:45

Also es geht nicht direkt um Safari, sondern um ein Klickbares Widget z.B. für Facebook direkt auf dem Springboard (Es gibt eine Tweak, nennt sich iWidgets für offene Geräte), basiert alles auf HTML, JavaScript etc.. Bisher war es so, das ich auf dem Springboard ein Bild habe und beim Klick darauf öffnet sich z.B. eine App. Alles kein Problem. Dem ganzen wollte ich einen "Bounce" Effekt verleihen, 5x hüpfen z.B., allerdings öffnet sich die App sofort, heißt, man sieht kaum was von dem Effekt, daher meine Frage mit dem Timeout. Nur funktioniert das nicht auf dem Springboard, die App öffnet nicht sobald ich deinen Code benutze.

0

Dazu wirst du wohl JavaScript verwenden müssen.


Damit kannst du das Klick-Ereignis abfangen und dann z. B. einen timeout setzen der nach 5 Sekunden das Link-Ziel aufruft.


Hab dir mal was ergoogelt:

http://stackoverflow.com/questions/14434604/i-want-to-delay-a-link-for-a-period-of-500-with-javascript



KoHRdH 
Beitragsersteller
 27.06.2015, 21:41

Danke, aber das wird mir jetzt schon zu kompliziert! :P

0

Die automatische Weiterleitung via JavaScript nach Klick einbinden ;)