我有一个简单的用户脚本,旨在更改YouTube页面上的一些链接:
// ==UserScript==
// @name name
// @description description
// @include https://www.youtube.com/*
// @match https://www.youtube.com/*
// ==/UserScript==
var titles = document.getElementsByClassName("vm-video-title-content");
for (var i=0; i<titles.length; i++) {
titles[i].setAttribute("href", titles[i].getAttribute("href").replace("/edit?o=U&video_id", "watch?v"));
}
当我将代码用作书签脚本或仅将其粘贴到控制台中时,代码能够正常工作,但在安装为用户脚本的 Chrome 中似乎没有效果。
我尝试使用window.onload
和window.addEventListener()
来使代码在页面加载后运行,但这并没有帮助代码正常工作。
如何使这段代码在用户脚本中正常工作?
setTimeout
中。我发现在编写用户脚本时,竞争条件是一个常见的问题... 给它足够的时间(大约一秒钟)开始执行。 - Shadow