2013-04-16 2 views
0

Я ищу способ автоматически заполнить имя пользователя/пароль на веб-странице с помощью Greasemonkey.Как установить два входа и кнопку ungrey?

Эти два тега являются входами, у них нет ID, но они являются единственными двумя входами на странице, которые появляются при нажатии кнопки входа в систему.

Я новичок в Greasemonkey (и javascript), и мне было интересно, как я могу ждать появления этих двух входов.
Затем есть две кнопки: кнопка «ОК» и «Отмена». Кнопка «ok» выделена серым цветом, и установка входов с element0.value="password" не отбрасывает кнопку.

Как я могу отбросить его с помощью javascript?

+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.

Смежные вопросы