JavaScript 书签 (javascript:) 是否适用于 YouTube?

Does JavaScript bookmark(javascript:) work with YouTube?

我想写一个 js 代码来 un-translate 视频名称

它是从标题复制到视频块名称,但没有最后 10 个字符(没有“- YouTube”)。

当我尝试这段代码时(我知道代码必须是内联的,但它需要更多的审查)

javascript:var tttl = document.createElement('script');
document.getElementsByTagName("body")[0].appendChild(tttl);
tttl.innerText = "document.getElementsByClassName(\"style-scope ytd-video-primary-info-renderer\")[5].innerText = document.title.slice(0,-10);"; 

在浏览器控制台中它可以工作,但是使用书签(添加书签并在地址中粘贴我的代码)它不能正常工作。

根据您的问题,您似乎想在浏览 youtube.com 时执行 javascript 代码。

为此,您需要将代码包装在一个自执行函数中。

javascript:(function(){var tttl = document.createElement('script');
document.getElementsByTagName("body")[0].appendChild(tttl);
tttl.innerText = "document.getElementsByClassName(\"style-scope ytd-video-primary-info-renderer\")[5].innerText = document.title.slice(0,-10);";})();

编辑 1:

之所以将此代码包装在自执行函数中,是因为它定义了执行代码的范围,并且不会尝试在 DOM 上写入 return 值最后声明。

为了更好理解的示例代码:

javascript:var name;name="Ashish";

作为语句 name="Ashish" returns a value in javascript 如果通过地址栏执行,这将打印在浏览器上. 您代码中的最后一条语句也是如此。