1

このコードの何が問題になっていますか? IE と FireFox では動作しますが、Chrome では動作しません。アイデアは、関数 fnTimeOut が onmousemove の 5 秒後にトリガーされるということです (fnTimeOut はドキュメントの onmousemove に添付されていました)。大丈夫です。しかし、Chromeで「OK」ボタンをクリックすると、機能するfnAlertが即座にトリガーされます。マウスを動かしてからわずか5秒で撃たれるはずです...助けてください。


<input type="button" onclick="alert(1);" value="ok">


<script>

document.onmousemove = fnTimeOut;

var t = null;

function fnAlert()
{
    alert(2);
}

function fnTimeOut()
{
    clearTimeout( t );
    t = setTimeout( fnAlert, 5000 );
}
</script>
4

4 に答える 4

1

私は何かが欠けているに違いない。あなたのボタンには、アラートボックスを表示するように指示する onclick があります。そのアラートを遅らせようとするコードはありません。

ボタンをクリックしたときに、FFとIEがすぐにアラートを表示しない理由がわかりません。

マウス移動またはボタンのクリックから 5 秒後に fnAlert を呼び出す場合は、ボタンの onclick を "fnTimeOut()" に設定する必要があります。

于 2010-04-05T14:19:47.893 に答える
1

私が読んだ限りでは、アラートと確認ステートメントは settimeout タイマーをリセットします。これにより、フラッシュ中に特定のコードがすぐに実行されます。

私自身は試していませんが、null または確率変数ステートメントでクリック (現在はアラート) の内容を変更することを確認できますか?

于 2011-05-23T12:19:50.513 に答える
0

マウスがドキュメント上を移動するたびに onmousemove が発生するため、アラートはマウスの移動が停止した後にのみ表示されます。

そうは言っても、私のChromeインストールではうまくいきました。これは次のコードです。

<html>
<head>
  <script>

  document.onmousemove = fnTimeOut;

  var t = null;

  function fnAlert()
  {
      alert(2);
  }

  function fnTimeOut()
  {
      clearTimeout( t );
      t = setTimeout( fnAlert, 5000 );
  }
  </script>


</head>
<body></body>

</html>
于 2010-04-12T14:36:50.827 に答える
-1

同じ問題ですが、Chrome ブラウザのバグだと思います... Chrome 8 + Win XP では。それは間違っています; しかし、Chrome 10 + WinXp は問題ありません。そしてchrome 18はまた間違っています…しかし、一部のOS(Linuxなど...)では再表示されません。これはブラウザのバグではなく、OS またはハードウェアのバグでさえあると言う人もいます。

私のコードでは、「onmouseover」/「onmouseout」を使用して「onmousemove」を置き換えています。今は大丈夫そうです。

しかし、ドキュメント要素で mouseOVER 難しい...

于 2012-05-08T03:57:26.900 に答える