2017-01-05 90 views
1

對於一個頁面像 https://www.converto.io/?v=EbuYMynCWV8, 我有一個Tampermonkey腳本來自動:Tampermonkey js/jquery/ajax如何添加睡眠?

  1. 選擇MP4格式
  2. 點擊轉換按鈕。

它的工作原理,但有時也許它太快,最後我得到mp3格式的下載鏈接。
所以現在我想在兩個步驟之間放置一個睡眠時間。測試結果是代碼只完成第一步。任何想法?

我的代碼:

// ==UserScript== 
// @name  _ConverTo, Automatically select mp4 
// @match https://www.converto.io/* 
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js 
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @grant GM_addStyle 
// ==/UserScript== 
//- The @grant directive is needed to restore the proper sandbox. 

waitForKeyElements (".format-select:has(option[value=mp4])", selectFinickyDropdown); //------ step 1,choose mp4 format------ 

function selectFinickyDropdown (jNode) { 
    var evt = new Event ("click"); 
    jNode[0].dispatchEvent (evt); 

    jNode.val('mp4'); 

    evt = new Event ("change"); 
    jNode[0].dispatchEvent (evt); 

    setTimeout("secondStep()", 10000); //--- sleep 10s then step 2,click CONVERT button ------- 
} 

function secondStep() { 
    waitForKeyElements (".convert-btn", clickbuttonconvert); 
} 

function clickbuttonconvert (jNode) { 
    var evt = new Event ("click"); 
    jNode[0].dispatchEvent (evt); 
} 

回答

1

setTimeout通話中移除引號和括號,第一個參數應該是函數本身。

setTimeout(secondStep, 10000); 

the setTimeout reference at MDN

+0

完美!搜索結果可能是錯的!先生,非常感謝您的幫助。 – user2650501

+0

我真的不認爲這是一個問題@ user2650501。看到這個:http://jsbin.com/terijagado/edit?html,output你仍然可以使用你最初的方式。 –

+1

@PraveenKumar,自動評估代碼通常在用戶腳本與網頁/控制檯中失敗。取決於和這個非常常見的語法錯誤/錯字可能是問題所在。 –