javascript - 在不同网站上完成操作后,使用 YouTube API 点赞视频

标签 javascript google-chrome-extension youtube

我正在尝试编写我的第一个 google chrome 扩展程序,但我有点陷入困境。因此,我正在尝试制作一个扩展,当用户在 Reddit.com 上“投票”链接时,如果它是 youtube.com 链接,我想抓取该链接并“喜欢”该视频。因此,它基本上将 4-5 次点击变成了 1 次。

我的主要问题是如何监听“赞成”按钮被点击的情况?我需要使用 Reddit 的 api 来监听这个吗?或者是否有某种方法/事件监听器可以告诉我用户是否单击了赞成按钮?

我确实注意到,在检查“upvote”按钮上的元素时,当尚未单击它时,箭头上的其中一个类是“Up”,当您单击它时,它会更改为“Upmod”

我只需要弄清楚这一点,我觉得我可以轻松完成剩下的事情。我现在正在自学 javascript,我发现最好的方法就是拥有一个项目并边制作边学习。

如有任何帮助,我们将不胜感激!谢谢

最佳答案

由于投票仅通过点击触发,因此只需在 content script 中附加一个 click 事件监听器即可。声明在 reddit 视频网址上​​运行(例如,https://www.reddit.com/r/videos/*):

document.addEventListener('click', function(e) {
    if (e.target.matches('.arrow.upmod')) {
        ............
        // like it on youtube
        ............
    }
});

要在 YouTube 上投票,您需要在后台/事件页面中进行操作,该页面可以连接到您在 manifest.json 的 permissions 中声明的任何网址。 .

所以send a message将视频网址设置为 event page 。例如,在事件页面的消息监听器中,您将根据 youtube API 发送 XMLHttpRequest。这需要在上述权限中添加 API url。

关于javascript - 在不同网站上完成操作后,使用 YouTube API 点赞视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835093/

相关文章:

javascript - 是否有用于绘制电路图的 Javascript 库?

javascript - 调用 $.ajax 正在改变我的窗口滚动?

google-chrome-extension - 谷歌浏览器扩展奇怪的渲染

javascript - Parse.com JS 可以作为 Chrome 扩展使用吗

css - Chrome 扩展 CSS 操作

javascript - 无法在 'play' 上执行 'HTMLMediaElement'

html - 在 YouTube 等 Facebook 分享中嵌入视频播放器 html5 iframe

javascript - 使用javascript捕获网站截图

Javascript Electron/Monaco 编辑器无需对话框即可加载文件

python - YouTube视频时长到Django模型