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 以了解更多信息。

一个更易于实施的解决方案是......好吧,Sean Bright 已经击败了我,我刚才看到了;)

于 2012-08-31T13:56:12.413 回答