# Weiterleitung bei "Inaktivität" des Users



## sp00ky (2. Dezember 2004)

Hi

  Folgendes Problem:

 Wir betreiben ein Online-Kunstmagazin und präsentieren das auch in einer örtlichen Galerie. Dieser Infostand ist aber nicht immer betreut und da haben wir das Problem, daß manche Leute da drin rumklicken und dann weggehen - im Idealfall sollte aber jeder, der an den Stand kommt, die Startseite vorfinden.

 Nun hatte ich die Idee, ein Frameset drumrum zu bauen, das per Javascript ausliest, ob Maus- bzw. Tastaturaktivität vorliegt. Wenn der User über einen bestimmten Zeitraum "inaktiv" ist, soll das Script wieder auf die Startseite umleiten und die Fenstergröße maximieren.

 Vorweg die Frage: Geht das überhaupt mit einem Frameset drumrum? Kann das übergeordnete Frameset "wissen", was im darinliegenden Frame passiert (oder eben nicht passiert)?

Falls das grundsätzlich möglich wäre: Weiterleitung und Maximieren sind kein Problem, ich habe aber keine Ahnung, wie ich feststellen kann, ob der User "aktiv" ist oder nicht - kann mir jemand weiterhelfen?

  Vielen Dank im voraus


----------



## split (2. Dezember 2004)

Wenn der User auf einen Link klickt, wird die Seite ja aktualisiert. Das heißt, du kannst bei jedem Seitenaufruf einen Countdown starten, nach dessen Ablauf die Startseite geladen wird:
	
	
	



```
<script language="JavaScript">
<!--
var g_Time = 300; // Zeit bis Restart in Sekunden
var tCopy = g_Time;
function start()
{
  if(!g_Time)
    window.location.href = startseite;
  g_Time--;
  tout = setTimeout('start()', 1000);
}
//-->
</script>
```
Wenn du die Zeit außerdem zurücksetzen willst, wenn jemand eine Taste drückt (z.B. in Formular) kannst du im Body-Tag folgendes einfügen:
	
	
	



```
<body onKeyDown="g_Time=tCopy;">
```
Nur als Anregung - ungetestet!


----------



## sp00ky (3. Dezember 2004)

Danke für die Anregung - ich werde nachher mal damit rumspielen und das ganze testen.

 *edit*
 Ich werde dein Script ein bißchen abwandeln, da es sich bei mir wie gesagt um ein Frameset handlen wird - aus window.location.href mache ich dann parent.name_des_frames.location.href .. etwas Sorge macht mir der Funktionsaufruf, den du im body-Tag platziert hast - ein body-Tag gibt es bei mir maximal im noframes-Bereich. Ich hoffe, daß es klappen wird, wenn ich die Funktion im frameset- bzw. im frame-Tag aufrufe (bei letzterem bin ich mir nicht sicher, ob das geht).


----------



## sp00ky (3. Dezember 2004)

Hmm.. also bei mir hat das gar nicht gefunkt. Die Javascript-Konsole meines Firefox 1.0 spuckt aber auch keine Fehlermeldungen aus.

  Ich hab das obige Beispiel folgendermaßen eingebaut:


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
  <html>
    <head>
  	<title>Titel</title>
  	<script type="text/javascript">
  	  var g_Time = 20; // Zeit bis Restart in Sekunden
  	  var tCopy = g_Time;
  	  function start() {
  		if(!g_Time) { parent.ral.location.href = "http://www.url.xy"; }
  		g_Time--;
  		tout = setTimeout('start()', 1000);
  	  }
  	</script>
    </head>
    <frameset onkeydown="g_Time = tCopy;">
  	<frame name="ral" src="http://www.url.xy" frameborder="0" border="0" scrolling="auto" />
    </frameset>
  </html>
```
 
  Weiß jemand Rat?


----------



## con-f-use (3. Dezember 2004)

Kein Wunder, die Funktion start() wird ja auch nicht aufgerufen 
 Versuch's mal mit 
	
	
	



```
<frame name="ral" src="kleineAuflösungen.html" frameborder="0" border="0" scrolling="auto" onLoad="start()">
```
Und schreib lieber "onKeyDown" (Groß-/Kleinschreibung) beachten, weil das manche browser nicht anders verstehen.


----------



## chrisbergr (3. Dezember 2004)

Hallo!

Das hilft jetzt nicht bei der technischen Umsetzung deines Problems, aber ich wollte mal sagen, dass mich als User das nerven würde. Z.B. lese ich mir einen Artikel durch was heißt ich mache weder mit der Maus noch mit der Tastatur irgendetwas. Wenn ich da gerade dabei bin und nach einer gewissen Zeit ich plötzlich wieder auf der Startseite bin, würde mich das ärgern.

Oder noch ein Beispiel, ich bin auf deiner Seite, klicke mich ein bisschen durch, plötzlich schreibt mich jemand im AIM an womit ich dann aufgehalten werde, ich suche also im neuen Browser nach allemmöglichen, erledige noch auf der und der Homepage war, hab mit absicht deiner Seite nich geschlossen weil ich noch weiter stöbern will, plötzlich ist deine Seite mit der Startseite wieder on top, ist sehr aufdringlich und würde von mir sofort geschlossen werden. Ohne das würde ich nach einiger Zeit, bis ich eben das Zeugs erledigt habe wieder zurück kommen.

Das nur mal so als Anregung.


----------



## sp00ky (3. Dezember 2004)

@acid.rain

 Das ist mir klar und du hast völlig recht, ich habe mich wohl bei der Beschreibung des Problems zu Beginn des Topics mißverständlich ausgedrückt.

 Also: Die Website im Netz wird natürlich nicht mit dem Script, um das es hier geht, versehen - ich will lediglich eine lokale HTML-Datei mit eben diesem Frameset haben und dieses Frameset bei Präsentationen vom Desktop aufrufen, damit (falls der Stand mal nicht betreut ist) nicht der Fall eintritt, daß Leute auf den Rechner schauen und dann ggf. eine andere als die Startseite sehen.

 Programme wie AIM usw. stehen auf unserem Präsentationsrechner gar nicht zur Verfügung (die Nutzerrechte für das Profil sind dann sowieso eingschränkt), so daß das Problem mit dem Nutzen anderer Anwendungen gar nicht auftreten wird.


----------



## sp00ky (3. Dezember 2004)

@con-f-use

   Upsala.. da hätte ich drauf kommen können/sollen - Danke für den Tip 

  PS
 Bezüglich der (Groß-/Klein-) Schreibweise von Eventhandlern: Soweit ich weiß, sehen die XHTML-Standards vor, daß man beim Schreiben von Tags und Attributen nur noch Kleinbuchstaben verwendet.
 Abgesehen davon läuft das Script ja (wie im Beitrag eins drüber angemerkt) eh nur auf einem einzigen Rechner, der uns gehört und wo wir uns aussuchen können, welchen Browser wir da benutzen (in unserem Fall ist das Firefox). Daher muß das ganze auch nur in eben diesem einen Browser laufen.


----------



## chrisbergr (3. Dezember 2004)

Ok, das ist natürlich was anderes.

BTW: Wie währe es denn mit einem kleinen Programm welches überprüft ob aktivitäten da sind und wenn nicht auf die Startseite verlinkt. Auserdem noch das Schließen des Browsers verhindert?


----------

