Пользовательский скрипт Tampermonkey, чтобы щелкать узлы по (данным) атрибутам? - PullRequest
0 голосов
/ 14 апреля 2019

Я новичок, учусь кодировать Tampermonkey. Я знаю, как нажимать на автоматическое нажатие, используя тег класса или тег id. Но есть ли где-нибудь автоматизировать клики на основе данных, таких как data-id, name или image URL?

HTML похож на:

<div class="yellow-bot" data-image="//imgurl1.gif" data-id="123" data-name="Image1">...</div>
<div class="yellow-bot" data-image="//imgurl2.gif" data-id="124" data-name="Image2">...</div>
<div class="yellow-bot" data-image="//imgurl3.gif" data-id="125" data-name="Image3">...</div>
...
...
...
<div class="submitButton">
<input id="button" type="submit" value="Submit Now" class="btn-primary">
</div>

Так что я бы хотел, чтобы клик щелкал по идентификаторам 124 и 125, но класс все тот же. и затем нажмите на кнопку Отправить. Кто-нибудь может мне помочь с этим?

1 Ответ

1 голос
/ 14 апреля 2019

Ссылка CSS-селекторы и jQuery-селекторы .

Итак, выбор по атрибуту:

document.querySelector (".yellow-bot[data-id='124']").click ();
document.querySelector (".yellow-bot[data-id='125']").click ();

Или намного надежнее:

// ==UserScript==
// @name     _Click nodes by attribute
// @match    *://YOUR_SERVER.COM/YOUR_PATH/*
// @require  https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// @grant    GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.
/* global $, waitForKeyElements */

waitForKeyElements (".yellow-bot[data-id='124']", clickNode, true);
waitForKeyElements (".yellow-bot[data-id='125']", clickNode, true);

function clickNode (jNode) {
    var clickEvent  = document.createEvent ('MouseEvents');
    clickEvent.initEvent ('click', true, true);
    jNode[0].dispatchEvent (clickEvent);
}


Остальные сведения см. Выбор и активация правильных элементов управления на AJAX-управляемом сайте .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...