Die Bewegung der Maus überwachen
philipp
- javascript
hi ihr, habe folgendes script, dass wenn eine minute lang die maus nicht bewegt wurde, den alert "jetzt" ausgibt: aber leider ist es eine endloschschleife, die ich nicht weg bekomme ...
<html>
<head>
<title>Untitled</title>
<script>
<!--
var anistart = 0;
var zeit;
var hour;
var minute;
var zeit2;
var hour2;
var minute2;
var sekunde2;
var zeit3;
var sekunde3;
var pause = 1;
zeit = new Date();
hour = zeit.getHours();
minute = zeit.getMinutes();
zeit = ''+hour+''+minute;
while (anistart != 1) {
zeit2 = new Date();
hour2 = zeit2.getHours();
minute2 = zeit2.getMinutes();
sekunde2 = zeit2.getSeconds();
zeit2 = ''+hour2+''+minute2;
if (zeit2 == (zeit+1)) {
anistart = 1;
alert('jetzt');
}
while (pause == 1) {
zeit3 = new Date();
sekunde3 = zeit3.getSeconds();
if (sekunde3 == (sekunde2+5)) {
pause = 0;
}
}
}
function killTimeout () {
zeit = new Date();
hour = zeit.getHours();
minute = zeit.getMinutes();
zeit = ''+hour+''+minute;
}
-->
</script>
</head>
<body bgcolor="#00ff00" onMouseMove="killTimeout()">
</body>
</html>
Hallo,
if (zeit2 == (zeit+1))
Mach den Vergleich mit einem < . Vielleicht wird der Vergleich nicht genau getroffen.
Gruß,
Henning
Hi,
hi ihr, habe folgendes script, dass wenn eine minute lang die maus nicht bewegt wurde, den alert "jetzt" ausgibt: aber leider ist es eine endloschschleife, die ich nicht weg bekomme ...
while (anistart != 1) {
zeit2 = new Date();
hour2 = zeit2.getHours();
minute2 = zeit2.getMinutes();
sekunde2 = zeit2.getSeconds();
zeit2 = ''+hour2+''+minute2;
if (zeit2 == (zeit+1)) {
anistart = 1;
alert('jetzt');
}
while (pause == 1) {
zeit3 = new Date();
sekunde3 = zeit3.getSeconds();
if (sekunde3 == (sekunde2+5)) {
pause = 0;
}
}
}
Arrgh. Busy waiting ist böse[tm]
Setze window.setTimeout ein, bei mousemove den Timer jeweils zurücksetzen.
Details zu setTimeout usw. in SelfHTML.
cu,
Andreas