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").setVolumebut i see it as function in web console.Why?