рони,
Сообщение от рони
|
кликнуть дважды
|
А так происходит, что и ранее:
Сообщение от The_Immortal
|
По коду выше выдается страница, где сообщается, что radiobutton не выбран
|
В консоли при этом выводится ошибка:
TypeError: document.querySelector(...) is null
На
send(); (если из-под скрипта), кстати, в консоли пишется:
Цитата:
|
ReferenceError: send is not defined
|
Пробовал ещё вот так:
document.querySelector('[value="Запустить"]').form.submit();
Также ошибка "radiobutton не выбран":
TypeError: document.querySelector(...) is null
---
Нашел на странице саму функцию
send:
function send(){
var frm = document.mychance;
var chance_type = '';
for (var i=0;i < frm.elements.length;i++) {
var elmnt = frm.elements[i];
if (elmnt.type=='radio') {
if(elmnt.checked == true){ chance_type = elmnt.value; break;}
}
}
var ajax = new tbdev_ajax();
ajax.onShow ('');
var varsString = "";
ajax.requestFile = "mybchance.php";
ajax.setVar("id", chance_type);
ajax.method = 'POST';
ajax.element = 'ajax';
ajax.sendAJAX(varsString);
}
Запихнул её в скрипт и получил ошибку:
ReferenceError: tbdev_ajax is not defined
---
Урааа!!! Вот где была собака зарыта:
<script language="javascript" type="text/javascript" src="js/ajax.js"></script>
Пока получилось вот так:
// ==UserScript==
// @name Скрипт БезИмени 648414
// @version 1
// @grant unsafeWindow
// @grant GM_openInTab
// @run-at document-end
// @require [url]https://somewww.org/js/ajax.js[/url]
function send(){
var frm = document.mychance;
var chance_type = '';
for (var i=0;i < frm.elements.length;i++) {
var elmnt = frm.elements[i];
if (elmnt.type=='radio') {
if(elmnt.checked == true){ chance_type = elmnt.value; break;}
}
}
var ajax = new tbdev_ajax();
ajax.onShow ('');
var varsString = "";
ajax.requestFile = "mybchance.php";
ajax.setVar("id", chance_type);
ajax.method = 'POST';
ajax.element = 'ajax';
ajax.sendAJAX(varsString);
}
document.querySelector('[name="thisradio"][value="123"]').dispatchEvent(new MouseEvent('click'));
send();
Сообщение от The_Immortal
|
После успешной операции открывается другая страница, после чего надо вернуться на предыдущую и всё заново повторить (выбрать нужное "радио" и кликнуть по кнопке) - т.е. организовать цикл.
|
Оказалось, что достаточно переинициализировать страницу:
location.reload();
return false;
Но я вот не могу понять каким образом организовать цикл, к примеру, чтобы скрипт выполнялся 10 раз? Надо какую-то глобальную переменную заводить как-то...