2016-11-30 4 views
3

Ich habe eine einfache Funktion;wie Javascript Funktion nach location.reload() im selben Browser-Fenster

nach dem Öffnen in einem Browser (Chrom oder Firefox) Ich tippe dies;

localStorage.setItem("mysc","setTimeout(function(){ 
    //Business stuffs... 
    location.reload(); 
    eval(localStorage.getItem('mysc')) 
    },5000)"); 

Danach tippe ich einmal;

eval(localStorage.getItem('mysc')) 

Ich möchte diese Funktion in demselben Browser-Fenster führt immer .. oder bis den Browser schließen .. aber wie Sie erraten, es funktioniert nur einmal. Wie kann ich das erreichen?

+0

'setInterval (Funktion() {eval (localStorage.getItem ('mysc'))})' – adeneo

+0

@adeneo lassen Sie mich es versuchen :) – TyForHelpDude

+0

wollen Sie zuerst 5 Sekunden warten dann für immer oder rufen Sie die Funktion alle 5 Sekunden? – Mahi

Antwort

2

Sie sollten den Timer auf Seite laden erstellen und die Seite im Rückruf neu laden. Wenn die Seite neu geladen wird, wird der Timer neu erstellt. Dadurch wird die Seite "rekursiv" alle 5 Sekunden neu geladen.

<html> 
 
    <head> 
 
    <script type="text/javascript"> 
 
     console.log('page loaded, waiting...'); 
 
     setTimeout(function() { 
 
     console.log('reloading'); 
 
     location.reload(); 
 
     }, 5000); 
 
    </script> 
 
    </head> 
 
</html>


Soweit ich weiß, gibt es keine Möglichkeit, dies zu erreichen, wenn Sie nicht über die Seite, die Sie neu laden wollen steuern (dh unter Verwendung Dev Tools oder Konsole APIs). Es ist nicht möglich, ein Skript anzuhängen, das beim nächsten Laden der Seite ausgeführt wird, und alle aktiven Timer werden gelöscht, wenn die aktuelle Seite entladen wird. Eine Browser-Erweiterung ist wahrscheinlich der Weg zu gehen; Zum Beispiel kann Content Scripts verwendet werden, um dies in Chrome zu erreichen.

+0

Vaiow es sieht, was ich suche .. lassen Sie mich versuchen – TyForHelpDude

+0

Beachten Sie, dass Sie dies nicht von den Dev-Tools erreichen können, da Sie ein Skript automatisch bei jedem Laden der Seite ausführen müssen. –

+0

Ja das ist, warum ich das nicht akzeptiere .. weil ich diese Arbeit in der Konsole brauche .. – TyForHelpDude

Verwandte Themen