• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

F5 onclick ausführen

Space Vampire

Senior HTML'ler
Ich bin völliger JS-Legastheniker und habe folgendes Problem:
Ich möchte per onclick-Event eine Seite neu laden, und zwar analog zur Funktionalität der F5-Taste.
Es ist von Wichtigkeit, dass die aktuelle Scrollposition des Viewports erhalten bleibt, was bei
Code:
onclick="location.reload();"
ja leider nicht der Fall ist.

Ich habe es mit sendkeys probiert
Code:
onclick=" shell = new ActiveXObject ('WScript.shell'); shell.sendkeys('{F5})'; "
Hat aber leider absolut keine Wirkung.

Kann mir jemand sagen, wo mein Fehler ist oder mir eine Alternative nennen?
Danke
 
Werbung:
Deine Lösung funktioniert doch eh nur im Intranet und IE (falls überhaupt :-)). Installiere dir eine keydown-Eventhandler auf den body, frag die Taste ab und wenn f5 geklickt wird, dann machst den location.reload() und was sonst so notwendig ist, um die Position wieder herzustellen (wenn das überhaupt geht). Versuch doch erst mal über einen einfachen Button, ob der Reload+Position überhaupt geht, nicht dass die Seite so richtig neu geladen wird und du dir im JavaScript nichts merken kannst. Dann müsstest das eventuell über Cookies machen.
 
Ich glaub, wir führen hier zwei verschiedenen Gespräche :-?
Es soll nicht der Druck auf F5 abgefangen werden, sondern ich möchte einen Page-Refresh der sich genauso verhält, wie ein Drücken dieser Taste.
location.reload() tut das eben nicht. Diese Funktion verhält sich wie STRG-F5. Das kann ich aber nicht brauchen.
Gibt es da eine Möglichkeit?
 
Werbung:
Noch weiter als mein erstes Posting? :D
Ok.

Ausgangssituation:
Ich habe auf dieser Seite, die ich gerade für meine Freundin baue, drei Social-Buttons eingebaut (Facebook, Google+, Twitter).
Vorausschauend, wie ich immer zu sein bestrebt bin, werden, wegen den beiden berits erlassenen Urteilen in zwei Bundesländern, die eigentlichen Social-Scripte erst durch einen einvernehmlichen Buttonklick aufgerufen.
Da ich aber nicht möchte, dass der Besucher dazu die Seite wechselt, rufe ich die Social-Scripte via Fanciebox als Inline (ca. 170x170px Kantenlänge) auf.
So weit, so gut.
Funktioniert alles prima, abgesehen von zwei Problemen.
Eines dieser Probleme ist nebensächlich und wird in diesem Thread behandelt...oder auch nicht. Egal.
Das zweite Problem ist nicht so nebensächlich.

Das Problem:
Das Social-Script für G+1 kann nur einmal aufgerufen werden. Danach geht es erst wieder nach einem Refresh. Einfach mal ausprobieren, dann weißt du was ich meine.
Ginge es dabei lediglich um das +1 für die ganze Seite im Menü links oben, wäre mir auch das egal.
Wer liket schon zwei mal in schneller Folge die selbe Seite.
Nicht egal ist es aber z.B. auf dieser Unterseite.
Da gibt's die Buttons bei jedem Artikel.
Klickt man beim einen Artikel, funktioniert's bei einem anderen nicht mehr, bevor nicht die Seite aktualisiert wurde.
Inakzeptabel!

Lösungsansatz 1:
Ich habe versucht, das G+Script mit Iframe statt mit Inline aufzurufen. Damit war das Problem behoben. Allerding erzeugte das gleich ein neues Problem. Den Iframe müsste ich 500x600px groß machen, damit die Postingfunktion ausgeführt werden kann, ohne zwei Scrollbalken zu benötigen. Das wiederum bedeutet aber, dass der Iframe bei Aufruf erst mal zu rund 80% leer ist.
Sieht doof aus.
Inakzeptabel!

Lösungsansatz 2:
Einen Close-Button einbauen, der auffälliger ist, als das Kreuz zum Schließen und der onClick die Funktionsweise von F5 simuliert. Sprich: Seite aktualisiern und dabei gleichzeitig die Scrollposition des Viewports halten.
Und da häng ich nun...

Sieht jemand eine irgendwie praktikable Lösung?
Meine aktuelle Infozeilenlösung gefällt mir nämlich auch nicht :D
 
Mir ist gerade noch ein Lösungsansatz 3 eingefallen.

Statt in dem Inline-Element gleich den G+1 Button zu laden, kann ich doch den Button per onload nachladen lassen.
Das wäre dann technisch gesehen das gleiche wie im Iframe, ohne den oben beschriebenen Nachteil.
Nur kenn ich mich mit JS, wie gesagt, kein stück aus und finde mich mich in dem wald der Suchergebnisse nicht wirklich zurecht.

Kann mir jemand eine gute Seiten empfehlen, wo mir kurz und bündig erklärt wird, wie ich onload ein Script nachladen lassen kann, damit ich diesen Lösungsansatz mal testen kann?
 
Werbung:
Ich bin in der Materie derzeit leider gar nicht drin. Vielleicht hilft dir aber eine Suche nach „google multiple +1 buttons“.
 
So ziemlich der einzige searchstring den ich nicht probiert hab :D
Danke für den schubs.
Die Suchergebnisse sehen vielversprechend aus.
Werde mir das morgen mal genauer ansehen. ;)
Jetzt erst mal pennen...
 
geht es nur um die scrollposition, oder auch um den cache mit allen zugehörigen funktionen ?
 
Werbung:
Zurück
Oben