javascript:如何使youtube上所有的链接打开新标签



示例我有一个youtube链接,显示搜索结果

https://www.youtube.com/results?search_query=himalayas

我正在使用firefox和它的开发工具

我试图运行这个js脚本,使左键点击页面上的任何链接,以打开一个新的选项卡

code1

var e = document.createElement("base");
e.target = "_blank";
document.head.appendChild(e); 

Code2

var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].target = "_blank";
}

它们都添加了目标属性

但是在这个脚本之后,当左键点击

时,我也不能在新选项卡上打开链接知道我该怎么做吗

  1. 删除存在于a href标签上的yt-simple-endpoint
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].classList.remove('yt-simple-endpoint')
links[i].target = "_blank";
}

如果你删除类,它会影响样式,但你总是可以通过重新添加样式来解决这个问题。

  1. 删除附属于<ytd-app>的点击事件监听器

我认为在Firefox中删除事件侦听器并不容易。您可能会使用Firebug。Chrome有getEventListeners,所以你可以运行

const ytdApp = document.getElementsByTagName('ytd-app')[0]
ytdApp.removeEventListener('click', getEventListeners(ytdApp).click[0].listener)
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].classList.remove('yt-simple-endpoint')
links[i].target = "_blank";
}

最新更新