我有这两个javascript命令几乎点击我表中的第一个链接,脚本工作正常,但它继续无限循环,而我想要执行一次然后停止。我怎样才能做到这一点?
脚本:
<script>
$link = $('td a:first');
$link[0].click();
</script>
答案 0 :(得分:1)
你需要做这样的事情:
function autoHandler(){
var item = localStorage.getItem("turn");
if(!item){
localStorage.setItem("turn","1");
$link = $('td a:first');
$link[0].click();
}
}
autoHandler();
答案 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和隐私权政策)是一种很好的做法。