0

リンクがクリックされたときにページ上でのJavaScriptの実行を停止することは可能かどうか疑問に思いました。私が抱えている問題は、ページが30秒ごとに更新されることです(リストはサイト上で最新である必要があります)が、ユーザーがリストからリンクをクリックし、それが完了する前に30秒の更新が開始されると、停止します。リンクを開いてから、代わりにページを更新します。

実行中のスクリプトは次のとおりです。

        <script type="text/javascript">
        window.name = "NewRegistration";
        setTimeout("location.reload(true);",30000);
    </script>

リンクはサイトの別のページへのリンクです。

不明な点がある場合はお問い合わせください。

ありがとう、

ジャック。

4

3 に答える 3

6
<script type="text/javascript">
  var id;

  function stopRefresh()
  {
    window.clearTimeout(id);
  }

  window.name = "NewRegistration";
  id = window.setTimeout("location.reload(true);",30000);
</script>

<a href="somelike.html" onclick="stopRefresh();">Some Link</a>

jQueryを使用している場合、これはページ上のすべてのリンクに適用するのがはるかに簡単です。

<script type="text/javascript">
  $(document).ready(function() {
    $('a').click(function() {
      stopRefresh();
    });
  });
</script>
于 2012-08-31T13:53:38.033 に答える
1

ページ上のすべてのJavaScriptを停止する必要はありません。

更新ページ機能に取り組む必要があります。たとえば、リンクがクリックされたときにフラグをfalseに設定できます。

30秒後if(flag == false)はページを更新しない、それ以外の場合はページを更新する

それで全部です :)

于 2012-08-31T13:54:36.863 に答える
0

最近これを行う最も一般的な方法は、ページ全体をリロードせずにバックグラウンドで更新することですが、セットアップには少し手間がかかります。詳細については、Ajaxをお読みください。

実装がより簡単な解決策は...まあ、ショーンブライトはすでに私を打ち負かしました;)

于 2012-08-31T13:56:12.413 に答える