Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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 如何使用Google Chrome for Youtube运行扩展?_Javascript_Html_Json_Google Chrome Extension - Fatal编程技术网

Javascript 如何使用Google Chrome for Youtube运行扩展?

Javascript 如何使用Google Chrome for Youtube运行扩展?,javascript,html,json,google-chrome-extension,Javascript,Html,Json,Google Chrome Extension,你好, 我想删除出现在YouTube上的缩略图。我正在为此使用以下代码。 while (true) { $("ytd-thumbnail").remove() } 当我将此代码粘贴到控制台时,所有缩略图都将被删除。我希望它通过添加扩展在背板上工作。我正在准备的插件代码如下。 manifest.json popup.html 当我按下checkPage按钮时,什么也没有发生。但是当我添加一个控制台时,这段代码就起作用了。有什么问题?提前感谢。扩展有几个问题: 您正在尝试使用$i.e.jq

你好, 我想删除出现在YouTube上的缩略图。我正在为此使用以下代码。

while (true) {
    $("ytd-thumbnail").remove()
}
当我将此代码粘贴到控制台时,所有缩略图都将被删除。我希望它通过添加扩展在背板上工作。我正在准备的插件代码如下。

manifest.json

popup.html


当我按下checkPage按钮时,什么也没有发生。但是当我添加一个控制台时,这段代码就起作用了。有什么问题?提前感谢。

扩展有几个问题:

  • 您正在尝试使用$i.e.jquery,但在您的应用程序中不可用 popup.js
  • 您正在尝试访问属于您的“ytd缩略图”dom元素 转到youtube页面,而不是popup.html。所以,即使你更换$ 使用document.querySelector,您将找不到这些元素
  • 我创建了一个类似这样的工作版本。我没有包括popup.html,它与您的相同

  • manifest.json
  • 单击按钮后,检索活动选项卡并向其发送“removeThumbnails”消息

    3.background.js


    background.js是内容脚本,在youtube页面中运行。它现在可以访问youtube页面中的所有dom元素。当我们收到“removeThumbnails”消息时,获取所有ytd缩略图元素并将其从页面中删除。

    自行调试<代码>控制台.log($)<代码>控制台.log($('ytd-缩略图'))。它包含jquery吗?它是否包含您正在查找的元素?没有jQuery。我正在学习new.js,我不明白。我试着通过尝试和提问来学习@在提出更多问题之前,FrankerZI将首先研究基本调试
    console.log()
    和调试器是您的朋友。如果出现意外情况,请添加断点,并在您认为有问题的地方注销。它是否包含您所期望的内容?不然后找出原因。谷歌“为什么$Why is not working in my chrome extension”。非常感谢您宝贵的回复。这当然管用,我也学会了。根据你的知识,我想问你两个问题。问题1:如何在背板上连续运行此代码(background.js)?当我们单击时,图像被隐藏,但当我们再次加载页面或加载更多页面时,图像将再次显示。我们需要再按一下按钮@问题2:是否可以删除这样的视频?我将此代码添加到background.js文件中。按钮用于删除视频,但我们正在删除整个YouTube页面,因为我使用了错误的名称。var elements=document.queryselectoral(“ytd watch flexy”);elements.forEach(a=>a.parentNode.removeChild(a));别担心。当我们点击按钮时,我想我们可以使用.js代码来降低视频高度。例如高度:240像素;高度:0像素;我们将使视频的大小不会出现0像素,但声音会出现@对于NISH261,您可以使用api。如果您这样做,您应该考虑修改您的清单,以便只在YouTube上运行您的内容脚本。例如,我不确定我是否正确理解了你的问题。据我所知,也许你可以使用css可见性来控制视频元素是否可见。
    {
        "manifest_version": 2,
    
        "name": "test",
        "description": "test extension",
        "version": "1.0",
    
        "browser_action": {
            "default_popup": "popup.html"
        },
        "permissions": [
            "activeTab"
        ]
    }
    
    <!doctype html>
    <html>
        <head>
        <title>TEST</title>
        <script src="popup.js"></script>
        </head>
        <body>
            <h1>TEST</h1>
            <button id="checkPage">Check !</button>
        </body>
    </html>
    
    document.addEventListener('DOMContentLoaded', function() {
        var checkPageButton = document.getElementById('checkPage');
    
        checkPageButton.addEventListener('click', function() {
            chrome.tabs.getSelected(null, function(tab) {
                d = document;
    
                while (true) {
                    $("ytd-thumbnail").remove()
                }
            });
        }, false);
    }, false);
    
    {
      "manifest_version": 2,  
      "name": "Hello Extensions",
      "description" : "Base Level Extension",
      "version": "1.0",
      "browser_action": {    
        "default_icon": "hello_extensions.png",
        "default_popup": "popup.html"
      },
      "content_scripts": [
      {
        "matches": ["<all_urls>"],     
        "js": ["background.js"],
        "all_frames" : true
    
      }
     ],
     "permissions": [
        "activeTab",  
        "tabs"
     ]
    }
    
    document.addEventListener('DOMContentLoaded', function() 
    {
       var checkPageButton = document.getElementById('checkPage');
       checkPageButton.addEventListener('click', function() 
        {
    
            chrome.tabs.query({"active":true}, function (tabs){             
    
               chrome.tabs.sendMessage(tabs[0].id, "removeThumbnails", function (response) {
                        });             
                });
        });         
    });
    
    chrome.runtime.onMessage.addListener(function(message, callback) {
    
        if (message == "removeThumbnails")
        {       
            var elements = document.querySelectorAll("ytd-thumbnail");
            elements.forEach(a => a.parentNode.removeChild(a));
        }
    });