Автоматически установить флажок с помощью usercript?

Некоторые сайты (а именно Steam Community Market) требуют, чтобы пользователь вручную установил соответствующий флажок для повторяющихся действий, таких как покупка предметов.

Я хотел бы, чтобы этот флажок всегда отмечался.

  • URL:
    http://steamcommunity.com/market/listings/730/USP-S%20%7C%20Torque%20(Field-Tested)
  • элемент:
    <input id="market_buynow_dialog_accept_ssa" type="checkbox" value="0" name="accept_ssa">

Можно ли это сделать с помощью Tampermonkey?

я нашел document.getElementById("checkbox").checked = true; что кажется логичным для меня. Я добавил его в новый скрипт Tampermonkey и добавил Steam Market в список сайтов, на которых активирован скрипт, но он не работал.

1 ответ

Решение
  1. Найдите шаблон в URL, где должен быть выполнен скрипт пользователя, например, если он http://steamcommunity.com/market/listings/730/USP-S%20%7C%20Torque%20(Field-Tested) тогда мы можем принять часть, начинающуюся с 730 является летучим, поэтому мы заменим его * в @include ключ.
  2. Мы должны подождать, пока элемент checkbox будет добавлен на странице, есть два метода: MutationObserver-based (я буду использовать оболочку setMutationHandler) и setIntervalна основе (самая известная оболочка это waitForKeyElements). Оба подключены через @require ключ.

// ==UserScript==
// @name        Steam - accept the agreement
// @include     http://steamcommunity.com/market/listings/*
// @require     https://greasyfork.org/scripts/12228/code/setMutationHandler.js
// ==/UserScript==


// maybe the elements are already on the page
checkThem([].slice.call(document.querySelectorAll('input[type="checkbox"]')));

// but anyway set a MutationObserver handler for them
setMutationHandler(document, 'input[type="checkbox"]', checkThem);

function checkThem(nodes) {
    nodes.forEach(function(n) { n.checked = true });
}

Больше информации: Greasespot wiki.

Немного поздно, но ваш код неверен.

Grtelementbyid должен относиться к идентификатору тега html, а не к типу. Т.е. getelementbyid("market_buynow_....")

Другие вопросы по тегам