2009-08-26 5 views
0

Un de mes collègues a besoin d'un élément de données provenant d'un site Web tiers. Ces données sont affichées sur un site chaque matin à une heure arbitraire. Il doit s'asseoir là et cliquer sur rafraîchir dans son navigateur toutes les 10 secondes jusqu'à ce qu'il apparaisse. Il m'a demandé si je pouvais écrire quelque chose pour que cette page automatique se rafraîchisse toutes les X secondes afin qu'il puisse le laisser ouvert sur un moniteur et faire un autre travail sur l'autre.Bookmarklet forcer IE6 à démarrer la restauration automatique d'une page?

Normalement, j'écrirais un petit scraper d'écran en perl et lui enverrais le numéro qu'il voudra quand il sortira ... Mais j'ai pensé que ça pourrait être amusant d'écrire un bookmarklet.

j'ai eu pour autant que cela:

javascript:(function(){setInterval("location.reload(true);",10000);})() 

mais ne peut pas comprendre comment faire l'effet persiste après les rechargements de page. C'est possible? Si c'est le cas, comment?

Ce serait facile dans Firefox/Greasemonkey ... mais ce gars est bloqué en cours d'exécution d'une version verrouillée de IE6. Il peut installer un bookmarklet, mais ne peut pas installer l'équivalent IE de GM (si cela existe même)

S'il vous plaît pointez-moi dans la bonne direction ici ... est-il possible d'avoir Javascript persistent après le rechargement d'une page?

+0

Tout d'abord, thats rafraîchissant toutes les 10 millisecondes, pas secondes –

+0

Deuxièmement, IE6? Pauvre homme. – WCWedin

Répondre

1

Vous pouvez essayer AJAX pour obtenir la page, puis remplacer le innerHTML du corps actuel par le nouveau corps.

+0

Je me suis retrouvé avec le code naïf suivant qui semble fonctionner pour lui.
javascript :(fonction() {i = 0; setInterval ("i ++; var x = nouvel objet ActiveXObject ('Microsoft.XMLHTTP'); x.open ('GET', location.href + '?' + I, true) ; x.setRequestHeader ('Content-Type', 'application/x-www -form-urlencoded'); x.onreadystatechange = fonction() {if (x.readyState == 4) {document.body.innerHTML = x. responseText;}}; x.send (null); ", 5000);}()) – Sukotto

0

Vous pouvez essayer d'avoir le bookmarklet ouvrir une nouvelle fenêtre et écrire le contenu de cette fenêtre pour recharger le parent par quelque chose comme

window.opener.document.location.reload();

0

ne suis pas sûr d'un bookmarklet, mais des exemples Iframe sur une rafraîchit la page à un intervalle, qui devrait faire l'affaire ...

<!DOCTYPE html> 

<html> 
    <head> 
    <title>Auto Refresh</title> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript"> 
     window.onload = function() { 
     var url = 'http://www.google.com'; 

     setInterval(function() { 
      document.getElementById('thisFrame').src = url; 
     }, 10000) 
     } 
    </script> 
    </head> 
    <body> 
    <iframe id="thisFrame" src="http://www.google.com" frameborder="0" width="100%"></iframe> 
    </body> 
</html> 
Questions connexes