Просмотр полной версии : Нажать на кнопку JS
Здравтсвуйте. Есть форма сайта(https://target.mail.ru/ads/create/). Помогите нажать на кнопку "Загрузить", в JS полный ноль, пробовал нажимать на AutoIT получается, но скрипт зависает, после чего не возможны дальнейшие действия. Нет тега формы, только class кнопки.
кнопка.click() или кнопка .submit()?:blink:
Я не понял, что вы имели в виду.
На Autiit я обращался так:
$oIE = _IECreate("https://target.mail.ru/ads/create/", 1, 1, 1);Получаем обьект IE
$oSubts = _IETagNameGetCollection($oIE, 'input');Получаем обьект кнопку по тегу input
For $oSubt In $oSubts
If $oSubt.classname = 'image_upload_0' Then;Если класс кнопки верный
$oSubt.click();Сдесь мы нажимаем на кнопку, появляется окно для выбора картинки и
мы зависаем на этом месте. Думаю это поток, потому что если закрыть появившееся окно, то зависание уходит
EndIf
Next
Если вам нужна структура html, можете ее посмотреть, пройдя по вышеописанной ссылке.
lord2kim
10.06.2012, 10:02
для клика на кнопку программно используются события click() или submit() для формы
document.getElementsByClassName("класс кнопки").click();
или
document.getElementById("идентификатор формы").submit(); // если кнопка имеет type="submit"
реализация метода getElementsByClassName() для IE
if (typeof document.getElementsByClassName == 'undefined') {
document.getElementsByClassName = function(classname) {
var all = document.all,
elements = [],
regexpr = new RegExp('\\b'+classname+'\\b','ig');
for(var x=0; x<all.length; x++) if (all[x].className)
if (all[x].className.search(regexpr)!=-1) elements[elements.length] = all[x];
return elements;
}
}
lord2kim
Скажите как мне запустить код, чтобы он отработал на нужной форме в браузере IE.
lord2kim
10.06.2012, 14:54
lord2kim
Скажите как мне запустить код, чтобы он отработал на нужной форме в браузере IE.
если это кнопка type="submit", то можно через форму
document.getElementById("идентификатор_формы").submit();
//или
document.forms.(имя_формы).submit();
если это просто кнопка и у нее есть только class, и такой class только у одного элемента на странице, то добавляете в начале страницы реализацию метода getElementsByClassName() для IE и
document.getElementsByClassName("имя_класса")[0].click();
Скрипт не работает в IE выдает ошибку:
Сообщение: Объект не поддерживает это свойство или метод
Строка: 1
Символ: 23
Код: 0
URI-код: https://target.mail.ru/ads/create/
Использую так:
"setTimeout(function(){document.getElementByName("image_file").Submit();},1)"
"setTimeout(function(){document.getElementByName('i mage_file').Click();},1)"
lord2kim
13.06.2012, 21:31
Скрипт не работает в IE выдает ошибку:
Использую так:
"setTimeout(function(){document.getElementByName("image_file").Submit();},1)"
"setTimeout(function(){document.getElementByName('i mage_file').Click();},1)"
методы с маленьких букв начинаются вроде...а также getElementsByName пишется с буквой s (все методы getElements, кроме getElementById пишутся с буковкой s) + необходимо указать № элемента, т.к. getElementsByName это коллекция элементов на странице с аттрибутом name
setTimeout(function() { document.getElementsByName("image_file")[n].submit(); },1);
setTimeout(function() { document.getElementsByName('image_file')[n].click(); },1)
где n - № элемента на странице (нумерация элементов начинается с 0)
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot