Greasy Fork is available in English.

讨论»开发

youtube function undefined for GM

发表于:2019-04-27
编辑于:2019-04-27

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?

woxxom管理员
发表于: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.

发表于:2019-04-27

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

发表于: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);

发表于: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

发表于:2019-04-27

So can't I solve this problem?

发表于: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

发表回复

登录以发表回复。