2021-11-20
word count: 115
approx reading time: 1 mins
i'm used to music websites playing/pausing when i press spacebar. bandcamp does not do that. i got tired of feeling really silly every time i press the spacebar and only get scroll, so i made a really small greasemonkey script that fixes both things
it makes it so the play/pause button is clicked when the spacebar is
pressed, and it also prevents the page from scrolling. if you want to
enable this second behavior, remove the second addEventListener
from
the script below
this should work on every bandcamp page, even the ones that aren't on a
.bandcamp.com
domain
// get the bandcamp button const button = document.querySelector(".play_cell a .playbutton"); // only do stuff if the button exists if (button) { // click the button when the spacebar is released document.addEventListener('keyup', event => { if (event.code === 'Space') { button.click(); } }); // prevent default when spacebar is pressed, so we don't get page scroll window.addEventListener('keydown', function(e) { if(e.code == 'Space' && e.target == document.body) { e.preventDefault(); return false; } }); }
note: if you are using tampermonkey, set @match
to https://*/*
,
otherwise it seems to not work