YouTube上的Chrome扩展程序和Tampermonkey [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YouTube上的Chrome扩展程序和Tampermonkey [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

当我使用Tampermonkey中的用户脚本或作为Chrome扩展程序为youtube制作镀铬扩展程序时,扩展程序无法识别扩展程序应该像往常一样运行的页面,因为最近已经实现了history.push函数。例如:

// @include     http://www.youtube.com/feed/subscriptions

我这样做是因为它应该只在我订阅时运行,但是当我点击视频时它会继续加载扩展名。当我把它变成镀铬扩展时,问题仍然存在。

如何查看某个youtube页面是否在运行我的代码?

答案

问题是由history.pushState()修改URL的页面引起的。它只修改显示URL和内容而不重新加载页面。

因此,当您在Tampermonkey上运行脚本时,您需要强制重新加载该操作。

注意:如果您只想在离开订阅页面时不运行脚本,那么只需将@match语句更改为@include即可。

// ==UserScript==
// @name       YT pushState
// @namespace  http://tampermonkey.net/
// @version    0.1
// @match      *://*.youtube.com/*
// @grant      none
// ==/UserScript==

window.history.__proto__.pushState = function(a, b, url) {
    window.location.href = url;
}

if (window.location.href.match(/https?://www.youtube.com/feed/.*/)) {
    console.log("Put main function here!");                               
} else {
    console.log("Ignore this page");
}

以上是关于YouTube上的Chrome扩展程序和Tampermonkey [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 扩展程序未在 YouTube 的浏览器导航中加载

从 Chrome 扩展程序控制 YouTube 播放器

API Youtube,Firefox上没有'Access-Control-Allow-Origin'

我想创建 chrome 扩展,每次 youtube 播放视频时都会弹出

在 chrome 扩展中获取 YouTube 频道 ID

授予 Chrome 扩展程序访问 iframe 内容的权限