Userscripts run in a sandbox, which you can disable by adding @grant none
in the header, but there are some things to consider, see https://stackoverflow.com/a/10828021 and other similar answers.
I had already added @grant none in the header but also so it not work.
// ==UserScript== // @name Youtube Test // @version 1 // @grant none // @author Test // @include https://www.youtube.com/* // ==/UserScript==
alert(typeof document.getElementsByTagName("ytd-player")[0].getPlayer);
Greasemonkey changed what @grant none
does in version 4. See https://www.greasespot.net/2017/09/greasemonkey-4-for-script-authors.html
So can't I solve this problem?
to solve the gm4 limit,you can try
- use tampermonkey or other gm3 base script manager instead of greasemonkey4
- inject your script into the document
- use
unsafeWindow.document
instead ofdocument
(maybe)
but as youtube has CSP limit , it may only tampermonkey can run your script
youtube function undefined for GM
In youtube video page with last Firefox i get undefined for: document.getElementById("movie_player").setVolume but i see it as function in web console. Why?