location.reload() mit onfocus und onblur ein/ausschalten
NeoNuss
- javascript
Hi!
Ich bin absoluter JS-Neuling - das nur mal vorneweg, also nicht wundern! :)
Ich habe auf meiner Seite eine Message-Box, die sich 1x pro Minute reloaded (momentan noch mit Meta-Refresh). Problem dabei ist, dass wenn jemand gerade jemand seine message, es natürlich vorkommen kann, dass sich die page in der zeit reloaded und dessen eingaben natürlich weg sind.
Zur Lösung hab ich mir folgendes gedacht, weiss aber nicht wie ich das realisieren kann:
Statt des Meta-Refreshs nutze ich das hier:
<script language=javascript>
Timer=setTimeout("location.reload();", 60000);
</script>
jetzt müsste ich diesen reload in den formularfelder bei onfocus ausschalten und bei onblur einschalten.
aber wie genau muss ich das jetzt machen???
thx&gree,
NeoNuss
Hi, NeoNuss
Ich habe auf meiner Seite eine Message-Box, die sich 1x pro Minute reloaded (momentan noch mit Meta-Refresh). Problem dabei ist, dass wenn jemand gerade jemand seine message, es natürlich vorkommen kann, dass sich die page in der zeit reloaded und dessen eingaben natürlich weg sind.
Warum ist denn der Reload notwendig?
jetzt müsste ich diesen reload in den formularfelder bei onfocus ausschalten und bei onblur einschalten.
Ich halte diese Vorgehensweise für ungeeignet, denn wenn das Feld den Focus verliert, heißt das ja nicht, dass ich mit der Eingabe fertig bin - und nichts ist ärgerlicher, als so eine Aktion. Eventuell solltest du das Eingabefeld und die Message-Box einfach trennen.
LG Orlando
Hallo,
das folgende Programm macht genau das was du willst NeoNuss.
allerdings hat es genau das Problem, das Orlando hier beschreibt:
Ich halte diese Vorgehensweise für ungeeignet, denn wenn das Feld den Focus verliert, heißt das ja nicht, dass ich mit der Eingabe fertig bin - und nichts ist ärgerlicher, als so eine Aktion.
es wäre aber möglich, bei onFocus den Auto-Reload auszuschalten und garnicht wieder einzuschalten; hat der User nämlich seine Eingabe gemacht, will er sie warscheinlich auch wegschicken, was sowieso zu einem Reload oder gar zu einer anderen Seit führt.
var counter;
var run = 1;
counter = 0;
Timer=setTimeout("newTimer();", 1000);
function newTimer() {
counter++;
if (counter >= 2) {
if (run) location.reload();
counter = 0;
}
Timer=setTimeout("newTimer();", 1000);
}
function Stop() {
run = 0;
}
function Start() {
run = 1;
}
nun musst du nur noch mit onFocus="javascript:Stop();" und onBlur="javascript:Start();" den Reload "sperren" oder "erlauben".
Die Zahl 2 in der Zeile "if (counter >= 2) {" gibt die Zeit in Sekunden an, nach denen die Seite neu geladen wird.
Eventuell solltest du das Eingabefeld und die Message-Box einfach trennen.
das halte ich allerdings auch für die bessere Idee.
Gruss Daniel