Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取内容脚本以单击YouTube视频的LIKE按钮?_Javascript_Google Chrome Extension_Content Script_Firefox Addon Webextensions - Fatal编程技术网

Javascript 如何获取内容脚本以单击YouTube视频的LIKE按钮?

Javascript 如何获取内容脚本以单击YouTube视频的LIKE按钮?,javascript,google-chrome-extension,content-script,firefox-addon-webextensions,Javascript,Google Chrome Extension,Content Script,Firefox Addon Webextensions,我正在学习如何进行Web扩展,我想从做一个类似YouTube视频的扩展开始会很有趣 我与YouTube互动的清单部分如下: "content_scripts": [ { "run_at": "document_end", "matches": ["*://*.youtube.com/*"], "js": ["/content_scripts/youtube.js"] } ], let likeButton = document.query

我正在学习如何进行Web扩展,我想从做一个类似YouTube视频的扩展开始会很有趣

我与YouTube互动的清单部分如下:

  "content_scripts": [
    {
    "run_at": "document_end",
    "matches": ["*://*.youtube.com/*"],
    "js": ["/content_scripts/youtube.js"]
    }
  ],
    let likeButton = document.querySelector('button[title="I like this"]');
    if (likeButton != null) {
        likeButton.click();
        console.log(likeButton);
        console.log("clicked on like button");
    }
我的代码如下:

  "content_scripts": [
    {
    "run_at": "document_end",
    "matches": ["*://*.youtube.com/*"],
    "js": ["/content_scripts/youtube.js"]
    }
  ],
    let likeButton = document.querySelector('button[title="I like this"]');
    if (likeButton != null) {
        likeButton.click();
        console.log(likeButton);
        console.log("clicked on like button");
    }
在我的控制台中,我可以看到日志“单击类似按钮”。我也可以看到按钮本身,但“点击”部分永远不会通过,或者至少它实际上并不“喜欢”视频

如果我检查记录的“likeButton”,我可以看到:

<button class="yt-uix-button yt-uix-button-size-default yt-uix-button-opacity yt-uix-button-has-icon no-icon-markup like-button-renderer-like-button like-button-renderer-like-button-unclicked  yt-uix-post-anchor yt-uix-tooltip" type="button" onclick=";return false;" title="I like this" aria-label="like this video along with 637 other people" data-post-action="/service_ajax" data-force-position="true" data-orientation="vertical" data-position="bottomright" data-post-data="se=8pH38AERCAASDQoLeHRRQ1FZbEdTem8%3D&amp;itct=CDQQpUEiEwi0iLq78sLTAhUHz5AKHQxkD1wo-B0" data-tooltip-text="I like this" aria-labelledby="yt-uix-tooltip166-arialabel">

如果我把它放在Google Chrome控制台的一个变量中,把它放在一个变量中,然后用按钮“单击”它。单击();,它起作用了。但是内容脚本没有,我不知道为什么。

试试这段代码

var likeButton = document.querySelector('#top-level-buttons > ytd-toggle-button-renderer:nth-child(1) > a > #button')
if (likeButton) {
  likeButton.click();
}

您也可以使用Youtube api: