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 如果通过地址栏执行,这将打印在浏览器上.
您代码中的最后一条语句也是如此。
我想写一个 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 如果通过地址栏执行,这将打印在浏览器上. 您代码中的最后一条语句也是如此。