用于更改YouTube页面的Greasemonkey脚本无法正常工作

Greasemonkey script to alter youtube pages does not work correctly

本文关键字:常工作 工作 脚本 YouTube Greasemonkey 用于      更新时间:2023-09-26

我写了一个Greasemonkey脚本来插入一个脚本到YouTube页面,加载脚本后,替换内容的文本("下载"到日语单词(在这个问题中,我将使用"TEST"代替。

但是,该脚本无法按我想要的方式工作。

我想将其插入到html中;

但实际插入的是这个(onload=" 丢失了。

问题出在哪里?

// Start script
window.addEventListener("load",function(){
if ((document.URL.match("www.youtube.com/watch?"))||(document.URL.match("c.youtube.com/videoplayback?"))) {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://userscripts.org/scripts/source/25105.user.js';
script.onload = "var elements=document.getElementsByClassName('yt-uix-button-content');for(var i=0;i<elements.length;i++)elements[i].innerHTML.replace('Download','TEST');"; //Not working
head.appendChild(script);
};},!1);
// End

尝试如下操作:

window.addEventListener("load", function(){
    if ((document.URL.match("www.youtube.com/watch?"))||(document.URL.match("c.youtube.com/videoplayback?"))) {
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'http://userscripts.org/scripts/source/25105.user.js';
        if( script.readyState ) {
            script.onreadystatechange = function() {
                if( script.readyState == 'loaded' || scriptTag.readyState == 'complete' ) {
                    script.onreadystatechange = null;
                    scriptHandler();
                }
            };
        }
        else {
            script.onload = function() {
                scriptHandler();
            };
        }
        head.appendChild(script);
    }
},false);

function scriptHandler() {
    var scriptContent = document.createElement('script');
    var s = document.getElementsByTagName('head')[0];
    scriptContent.type = 'text/javascript';
    scriptContent.text = "var elements=document.getElementsByClassName('yt-uix-button-content');for(var i=0;i<elements.length;i++)elements[i].innerHTML.replace('Download','TEST');";
    s.appendChild(scriptContent);
}