2012-08-31 75 views
0

我想知道是否可以在单击链接时停止在页面上运行javascript。我遇到的问题是页面每30秒刷新一次(列表需要在网站上更新)但是,如果用户单击列表中的链接,并且在加载完成之前开始30秒刷新,则会停止从打开链接,而不是刷新页面。单击链接时停止javascript运行

这里是运行脚本,

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

的链接是网站上的另一页。

如果有什么不清楚请问。

谢谢,

杰克。

回答

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> 
+0

非常感谢肖恩:) – Jackwellis

1

您不必停止所有的页面上的JavaScript。

你必须处理你的刷新页面功能。例如,您可以在单击链接时将标志设置为false。

后30秒 如果(标志==假)不刷新页面 其他 刷新页面

这是所有:)

+0

感谢大众,这是一个很好的解决方案,但我试过肖恩的第一个,它的工作:) – Jackwellis

+0

无论如何,他的解决方案更好,优雅,这是一个快乐的结局:) – Massanu

0

这样做,这些天最常见的方式是在更新没有重新加载整个页面的背景,虽然这是一个更多的工作来设置。阅读Ajax以了解更多信息。

一个解决方案,易于实现是......嗯,肖恩光明已经打我,只是现在我明白了;)