我正在尝试编写我的第一个 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/