2017-01-02 13 views
2

내가 ConverTo 같은 웹 페이지에 대한 Tampermonkey 코드를 쓰고 있어요 :
이 자동으로 드롭 다운에 두 번째 옵션을 선택 해야하는 :Tampermonkey를 눌러 드롭 다운 값을 선택하십시오. 신분증이나 이름이 없으며 단지 수업이 있습니까?

<select class="format-select"> 
    <option value="mp3">MP3</option> 
    <option value="mp4">MP4 (video)</option> 
</select> 

를, 페이지 후 몇 초는 완전히로드.
하지만 아무 일도 발생하지 않습니다.

내 코드 :

...... 
// @match  https://www.converto.io/* 
// @require http://code.jquery.com/jquery-1.11.0.min.js 
// ==/UserScript== 

$(document).ready(function(){ 
setTimout(test(),10000); 
function test() 
{ 
    $(".format-select").val('mp4'); 
} 
})(); 

이 도와주세요!

답변

2

Choosing and activating the right controls on an AJAX-driven site을 참조하십시오.
많은 AJAX 기반 컨트롤을 변경할 수 없습니다. 또한 페이지가 원하는 상태를 설정하기 위해 키 이벤트를 수신해야합니다.

  1. 클릭 이벤트 : 선택 ConverTo 경우

    을 기대 나타납니다.
  2. 값이 변경되었습니다.
  3. 변경 이벤트입니다.

당신이 완료, 작업 스크립트 같은 코드로 그 순서를 보낼 것이다 :

// ==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); 

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

    jNode.val('mp4'); 

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

다른 상태가 같은 말에, 가능한 시퀀스가 ​​있습니다.

+0

완벽하게 작동하며 고맙습니다. 이제 다음 "변환"버튼을 클릭하게하고 싶지만 아약스에 대해 전혀 배운 적이 없으므로 코드를 모방하려고 임의로 시도 할 수 있습니다. waitForKeyElements (".btn lg btn-default convert-btn" , ....... {var evt = new Event ("click"); jNode [0] .dispatchEvent (evt);} 어떤 아이디어가 없습니까? – user2650501

+0

스택 오버 플로우가 작동하는 방식이 아닙니다. 1 질문 당 1 질문. 후속 질문은 의견에서 "goalposts"를 이동해서는 안됩니다. [Help Vampire]가되지 마십시오. (http://meta.stackoverflow.com/a/258279/331508) ... [이 대답 수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235), 다음 upvote, 다음 추가 질문을 부탁드립니다 새로운 질문으로 대답하지만, 첫 번째 링크는 이미 컨트롤 활성화를 연결하는 방법을 보여줍니다. 다시 묻기 전에 링크 된 대답을 읽고 적용하십시오. –

+0

죄송합니다. 다시 한 번 감사드립니다. – user2650501