Discussions » Development

youtube function undefined for GM

§
Posted: 2019-04-27
Edited: 2019-04-27

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?

wOxxOmMod
§
Posted: 2019-04-27

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.

§
Posted: 2019-04-27

I had already added @grant none in the header but also so it not work.

§
Posted: 2019-04-27

// ==UserScript== // @name Youtube Test // @version 1 // @grant none // @author Test // @include https://www.youtube.com/* // ==/UserScript==

alert(typeof document.getElementsByTagName("ytd-player")[0].getPlayer);

§
Posted: 2019-04-27

Greasemonkey changed what @grant none does in version 4. See https://www.greasespot.net/2017/09/greasemonkey-4-for-script-authors.html

§
Posted: 2019-04-27

So can't I solve this problem?

§
Posted: 2019-04-30

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 of document (maybe)

but as youtube has CSP limit , it may only tampermonkey can run your script

Post reply

Sign in to post a reply.