【问题标题】:Does JavaScript bookmark(javascript:) work with YouTube?JavaScript 书签(javascript:) 是否适用于 YouTube?
【发布时间】:2020-01-23 19:50:22
【问题描述】:

我想写一个不翻译视频名称的 js 代码

它从标题复制到视频块名称,但没有最后 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);"; 

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

【问题讨论】:

  • 书签(JavaScript 书签的术语)必须在一行中。

标签: javascript bookmarks


【解决方案1】:

根据您的问题,您似乎想在浏览 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。

示例代码便于理解:

javascript:var name;name="Ashish";

由于语句 name="Ashish" 在 javascript 中返回一个值,如果通过地址栏执行,它将打印在浏览器上。 代码中的最后一条语句也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2011-04-05
    相关资源
    最近更新 更多