admin管理员组文章数量:1399949
Some sites (namely Steam Community Market) require the user to manually check a specific checkbox for repetitive actions like buying items.
I'd like to have that checkbox always checked.
- URL:
(Field-Tested)
- element:
<input id="market_buynow_dialog_accept_ssa" type="checkbox" value="0" name="accept_ssa">
Can that be done with Tampermonkey?
I found document.getElementById("checkbox").checked = true;
which seems logical to me. I put it in a new Tampermonkey script and added steam market to the list of websites the script activates on but it didn't work.
Some sites (namely Steam Community Market) require the user to manually check a specific checkbox for repetitive actions like buying items.
I'd like to have that checkbox always checked.
- URL:
http://steammunity./market/listings/730/USP-S%20%7C%20Torque%20(Field-Tested)
- element:
<input id="market_buynow_dialog_accept_ssa" type="checkbox" value="0" name="accept_ssa">
Can that be done with Tampermonkey?
I found document.getElementById("checkbox").checked = true;
which seems logical to me. I put it in a new Tampermonkey script and added steam market to the list of websites the script activates on but it didn't work.
- This is possible and it's not too difficult but you'll have to provide some specifics like the page url and the actual checkbox html (and a link to the entire page html posted on pastie or similar). If you provide these details your question, although borderline offtopic, may still be useful for other people. – woxxom Commented Nov 17, 2015 at 19:36
- @wOxxOm Well I was going to use it for the general steam market (at link) but to be specific i was trying on link. HTML code (just source code) at link. Though it may be useful to know that the box only appears once you click "buy now", and also the listings change a lot. I hope this is what is needed – Schmix Commented Nov 17, 2015 at 20:31
- See, also: Choosing and activating the right controls on an AJAX-driven site. – Brock Adams Commented Nov 17, 2015 at 22:40
2 Answers
Reset to default 5- Find a pattern in the urls where the userscript should be executed, for example if it's
http://steammunity./market/listings/730/USP-S%20%7C%20Torque%20(Field-Tested)
then we can assume the part starting with730
is volatile so we'll replace it with*
in@include
key. - We should wait for the checkbox element to be added on the page, there are two methods: MutationObserver-based (I'll use setMutationHandler wrapper) and
setInterval
-based (best known wrapper is waitForKeyElements). Both are plugged in via@require
key.
// ==UserScript==
// @name Steam - accept the agreement
// @include http://steammunity./market/listings/*
// @require https://greasyfork/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 });
}
More info: Greasespot wiki.
Bit late, but your code is wrong.
The grtelementbyid should refer to the html tag's id, not type. I.e. getelementbyid("market_buynow_....")
本文标签: javascriptAutomatically check a checkbox with a userscriptStack Overflow
版权声明:本文标题:javascript - Automatically check a checkbox with a userscript? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744240377a2596761.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论