仅运行一次javascript命令

时间:2017-07-31 11:03:36

标签: javascript jquery

我有这两个javascript命令几乎点击我表中的第一个链接,脚本工作正常,但它继续无限循环,而我想要执行一次然后停止。我怎样才能做到这一点?

脚本:

<script>
   $link = $('td a:first');
   $link[0].click();
</script>

3 个答案:

答案 0 :(得分:1)

你需要做这样的事情:

 function autoHandler(){
    var item = localStorage.getItem("turn");
    if(!item){
        localStorage.setItem("turn","1");
        $link = $('td a:first');
        $link[0].click();
    }
   }

       autoHandler();

https://jsfiddle.net/sozbepyd/

答案 1 :(得分:1)

我不知道你为什么需要本地/会话存储?您可以简单地将链接与当前网址进行比较,如下所示:

<script>
   var $link = $('td a:first');
   if(window.location.href.indexOf($link.attr('href')) === -1) {
      $link[0].click();
   }
</script>

答案 2 :(得分:0)

这可能会有所帮助 - 尽管我怀疑所提到的循环行为可能源于被调用多次的问题中的片段,因此它可能是页面上其他脚本活动的结果(???)。

<script>
    window.flag = window.flag || true;
    if (window.flag) {
        $('td a:first')[0].click();
        window.flag = !window.flag;
    }
</script>

正如我所说,可能有所帮助,可能不会。 :)

编辑评论

我建议使用window.sessionStorage而不是window.localStorage,因为localStorage将持续到/除非用户清除其浏览器缓存。这取决于您是希望在所有后续访问中永久禁止该事件,还是仅在每个会话中禁止该行为一次。如果后者在Nitesh的回答中用localStorage替换sessionStorage

由于local-sessionStorage都是类似Cookie的功能,因此通知访问者信息存储(Cookie和隐私权政策)是一种很好的做法。