我有這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>
我用這段代碼解決了我的問題!非常感謝 –
上面的代碼不循環,除非有問題的鏈接是相同的文檔。如果是這樣,你需要會話存儲或本地存儲或類似的標記,你正在做一個後續加載。 –
循環在哪裏? –
問題鏈接是相同的文檔,這就是爲什麼我不知道如何阻止它從無盡的循環。 –