我有这2个javascript命令,实际上点击了我的表中的第一个链接,脚本工作正常,但它继续无限循环,而我希望执行一次然后停止。我怎样才能做到这一点?只运行一次javascript命令一次
这就是脚本:
<script>
$link = $('td a:first');
$link[0].click();
</script>
我有这2个javascript命令,实际上点击了我的表中的第一个链接,脚本工作正常,但它继续无限循环,而我希望执行一次然后停止。我怎样才能做到这一点?只运行一次javascript命令一次
这就是脚本:
<script>
$link = $('td a:first');
$link[0].click();
</script>
你需要做这样的事情:
function autoHandler(){
var item = localStorage.getItem("turn");
if(!item){
localStorage.setItem("turn","1");
$link = $('td a:first');
$link[0].click();
}
}
autoHandler();
我不知道为什么,但是您的代码在我的情况下不起作用,在页面加载后,它不会自动点击表格的第一个href。 –
可以在涂抹后尝试吗?它应该工作。 此外,重新运行此代码。 使用localStorage.clear()重置本地存储。 – Nitesh
这可能会帮助 - 尽管我怀疑循环行为提到可能源于问题中的片段被多次调用,所以它可能是页面上其他脚本活动的结果(???)。
<script>
window.flag = window.flag || true;
if (window.flag) {
$('td a:first')[0].click();
window.flag = !window.flag;
}
</script>
正如我所说的,可能有帮助,可能不会。 :)
编辑光COMMENT
我会建议使用window.sessionStorage
而不是window.localStorage
作为localStorage
将继续下去,直到/除非用户清除其浏览器的缓存。这取决于您是否希望在所有后续访问中永远禁止事件,或者仅在每个会话中禁止一次行为。如果后者在Nitesh的回答中将localStorage
替换为sessionStorage
。
由于local-
和sessionStorage
都是类似Cookie的功能,因此最好通知访问者存储信息(Cookie和隐私策略)。
从评论,它实际上是一个链接到同一页 - 重新加载页面。 –
嗯,好的。那么@ Nitesh的'localStorage'解决方案就更好了。 –
我不知道你为什么需要本地/会话存储?你可以简单地比较与当前的URL链接,这样的:
<script>
var $link = $('td a:first');
if(window.location.href.indexOf($link.attr('href')) === -1) {
$link[0].click();
}
</script>
我用这段代码解决了我的问题!非常感谢 –
上面的代码不循环,除非有问题的链接是相同的文档。如果是这样,你需要会话存储或本地存储或类似的标记,你正在做一个后续加载。 –
循环在哪里? –
问题链接是相同的文档,这就是为什么我不知道如何阻止它从无尽的循环。 –