javascript: 如何让 youtube 上的所有链接都在新标签页中打开
javascript: How to make all links on youtube to open in new tab
示例我有这个显示搜索结果的 youtube link
https://www.youtube.com/results?search_query=himalayas
我正在使用 firefox 及其开发者工具
我正在尝试 运行 这个 js 脚本左键单击页面上的任何 link 以在新选项卡中打开
代码1
var e = document.createElement("base");
e.target = "_blank";
document.head.appendChild(e);
代码2
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].target = "_blank";
}
两者都添加了target属性
但是在这个脚本之后我也无法在左键单击时在新选项卡上打开 link
知道我该怎么做吗
你要么必须
- 删除 href 标签上存在的
yt-simple-endpoint
class
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].classList.remove('yt-simple-endpoint')
links[i].target = "_blank";
}
如果删除 class 它会影响样式,但您始终可以通过重新添加样式来解决这个问题。
或
- 删除附加到
<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";
}
示例我有这个显示搜索结果的 youtube link
https://www.youtube.com/results?search_query=himalayas
我正在使用 firefox 及其开发者工具
我正在尝试 运行 这个 js 脚本左键单击页面上的任何 link 以在新选项卡中打开
代码1
var e = document.createElement("base");
e.target = "_blank";
document.head.appendChild(e);
代码2
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].target = "_blank";
}
两者都添加了target属性
但是在这个脚本之后我也无法在左键单击时在新选项卡上打开 link
知道我该怎么做吗
你要么必须
- 删除 href 标签上存在的
yt-simple-endpoint
class
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].classList.remove('yt-simple-endpoint')
links[i].target = "_blank";
}
如果删除 class 它会影响样式,但您始终可以通过重新添加样式来解决这个问题。
或
- 删除附加到
<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";
}