2016-12-25 52 views
2

我經常訪問一個網站,它以順序方式顯示圖像。查看第一張圖像後,圖像的彈出鏈接在30秒後變爲活動狀態。我想繞過這個計時器。所以,我擡頭一看網頁的源代碼,並有我碰到的代碼 -如何繞過Javascript中的clearTimeout?

function Window(ID) { 

     var lg = JSON.stringify(lg); 
     CloseTimeout = setTimeout('Close(' + wID + ',' + nd + ',' + lnkFlag + ');', 30000); 
     interval = window.setInterval(function() { 
     }, 1000); 
    } 

以下線在第6行來了,30000是用毫秒計算的時間。

有沒有辦法繞過/減少這個計時器的持續時間使用一些JavaScript代碼的所有鏈接?任何幫助,將不勝感激。

+0

我刪除了我的答案,因爲我意識到這是行不通的。由於看起來負責關閉彈出窗口的函數是'CloseWindowOnUpdateTask',它需要一些可能難以獲得的參數,所以您需要弄清楚適當的'workID','nextTrId'和'lnkFlag'值是什麼,然後用這些參數調用'CloseWindowOnUpdateTask'。 – Carcigenicate

+1

哇這是糟糕的代碼。 – Carcigenicate

+0

它在你自己的瀏覽器中...所以只需重寫該函數即可。 – Chris

回答

2

有關您的問題的解決方法可能基於更換標準setTimeout

這不是一種禮貌和正確的方式,但速度足夠快。

代碼:

var _setTimeout = window.setTimeout; 
window.setTimeout = function (a, b) { 
    if ((typeof a === 'string' || a instanceof String) && 
      (a.startsWith('CloseWindowOnUpdateTask') && b == 30000)) { 
     _setTimeout(a, 1000); 
    } else { 
     _setTimeout.apply(null, arguments); 
    } 

}

+1

+1一個不好的駭客,但這可能正是OP所需要的,而其他任何東西都可能是矯枉過正的。 – Carcigenicate

+0

謝謝,這個作品! – Backspace