2013-04-16 5 views
0

Greasemonkey를 사용하여 웹 페이지에서 사용자 이름/비밀번호를 자동으로 채울 방법을 찾고 있습니다.두 개의 입력을 설정하고 버튼을 해제하는 방법은 무엇입니까?

두 개의 태그는 입력이며, ID이 없지만 '로그인'버튼을 누르면 나타나는 두 개의 입력입니다.

나는 Greasemonkey (및 javascript)의 초보자이며이 두 입력이 나타날 때까지 기다릴 수 있는지 궁금합니다.
두 개의 버튼 'ok'와 'cancel'버튼이 있습니다. '확인'버튼이 회색으로 표시되고 입력을 element0.value="password"으로 설정해도 버튼이 사용되지 않습니다.

자바 스크립트를 사용하여 어떻게 풀 수 있습니까?

+0

질문을 편집하여 입력 내용과 버튼이 포함 된 ** 정확한 ** HTML을 표시하십시오. 또한 대상 페이지로 연결하십시오. 보여 주신 것을 보여주십시오! –

+0

대상 페이지에 대한 링크를 사용할 수 없으며 로컬 페이지입니다. 그러나 두 개의 태그는 형식으로되어 있습니다. var el = getElementsByTagName ("input")을 사용하고 el [0]과 el [1]을 사용하여 그 둘을 검색했습니다. 그러나 나는 그들이 나타날 때까지 기다리는 방법을 모르겠다. (어쩌면이 입력이있을 때까지 주기적으로 점검 할 것인가?), 단추를 풀 수있는 방법도 없다. – shkra19

답변

1

질문 에는 요청 된 필수 HTML이없고은 없지만 일반적으로 "Choosing and activating the right controls on an AJAX-driven site"의 기술을 사용합니다. 같은

뭔가 :

// ==UserScript== 
// @name  _YOUR_SCRIPT_NAME 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js 
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @grant GM_addStyle 
// ==/UserScript== 
/*- The @grant directive is needed to work around a design change 
    introduced in GM 1.0. It restores the sandbox. 
*/ 

waitForKeyElements ("input[type='password']", logIn); 

function logIn (jNode) { 
    var inputs = $("input"); 

    //-- DO NOT HARDCODE LOGIN CREDENTIALS IN A SCRIPT! 
    $(inputs[0]).val ("username"); 
    $(inputs[1]).val ("password"); 

    //-- Might need to trigger a change or mouse event here. 

    waitForKeyElements (
     "JQUERY SELECTOR FOR THE OK BUTTON IN THE ACTIVE STATE", 
     clickOK_Btn 
    ); 
} 

function clickOK_Btn (jNode) { 
    triggerMouseEvent (jNode[0], "click"); 
} 

function triggerMouseEvent (node, eventType) { 
    var clickEvent = document.createEvent('MouseEvents'); 
    clickEvent.initEvent (eventType, true, true); 
    node.dispatchEvent (clickEvent); 
} 


그러나이 로그인 자격 증명을 하드 코딩하지 않습니다. a sensitive information framework을 사용하십시오.

관련 문제