Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.01.2021, 00:37
Новичок на форуме
Отправить личное сообщение для The_Immortal Посмотреть профиль Найти все сообщения от The_Immortal
 
Регистрация: 15.01.2021
Сообщений: 6

рони,
Сообщение от рони
кликнуть дважды
А так происходит, что и ранее:
Сообщение от 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 раз? Надо какую-то глобальную переменную заводить как-то...

Последний раз редактировалось The_Immortal, 16.01.2021 в 02:45.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача текста в textarea в зависимости от выбора radiobutton AndreiN Общие вопросы Javascript 4 07.02.2016 23:34
Скрипт случайного выбора при загрузке страницы dzhigora Общие вопросы Javascript 6 30.09.2012 00:44
скрипт для выбора серий и сезонов vk Evkliptik Общие вопросы Javascript 0 23.09.2012 16:10
скрипт выбора языка страницы не работает в ie savva jQuery 0 13.04.2011 11:05
Пользовательский скрипт для выбора option в select по умолчанию justalittleperson Элементы интерфейса 1 04.10.2010 06:13