Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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不工作_Javascript_Jquery_Google Chrome Extension - Fatal编程技术网

扩展中的javascript不工作

扩展中的javascript不工作,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在尝试制作一个阻止iFrame的chrome扩展。我有一个content.js文件,其中包含javascript代码,但不执行。 这是我的manifest.json: { "manifest_version":2, "name":"Ad Killer", "description":"A Basic program for blocking ads", "version":"0.1", "background":{ "scripts":[ "background.js"

我正在尝试制作一个阻止iFrame的chrome扩展。我有一个
content.js
文件,其中包含javascript代码,但不执行。 这是我的manifest.json:

{
"manifest_version":2,
"name":"Ad Killer",
"description":"A Basic program for blocking ads",
"version":"0.1",
"background":{
   "scripts":[
     "background.js"
   ]
},
"content_scripts":[
   {
      "matches":[
         "<all_urls>"
      ],
      "js":[
         "jquery.js"
      ]
   }
],
"browser_action":{
   "default_icon":"ad128.png",
   "default_title":"Ad Killer"
 }
}
"content_scripts":[
   {
      "matches":[
         "<all_urls>"
      ],
      "js":[
         "jquery.js",
         "content.js"
      ]
   }
],
{
“清单版本”:2,
“姓名”:“广告杀手”,
“说明”:“阻止广告的基本程序”,
“版本”:“0.1”,
“背景”:{
“脚本”:[
“background.js”
]
},
“内容脚本”:[
{
“匹配项”:[
""
],
“js”:[
“jquery.js”
]
}
],
“浏览器操作”:{
“默认图标”:“ad128.png”,
“默认标题”:“广告杀手”
}
}
Cotent.js:

var elems = document.getElementsByTagName("iframe");

for (var i = 0, max = elems.length; i < max; i++) {
    elems[i].hidden = true;
var elems=document.getElementsByTagName(“iframe”);
对于(变量i=0,max=elems.length;i

我的问题是,有没有办法让
content.js
中的javascript正常工作?如果有任何帮助,我们将不胜感激。

您的清单当前正在向您访问的每个页面添加jquery.js。您只需将content.js添加到“content\u scripts”数组中。假设content.js与manifest.json位于同一位置:

{
"manifest_version":2,
"name":"Ad Killer",
"description":"A Basic program for blocking ads",
"version":"0.1",
"background":{
   "scripts":[
     "background.js"
   ]
},
"content_scripts":[
   {
      "matches":[
         "<all_urls>"
      ],
      "js":[
         "jquery.js"
      ]
   }
],
"browser_action":{
   "default_icon":"ad128.png",
   "default_title":"Ad Killer"
 }
}
"content_scripts":[
   {
      "matches":[
         "<all_urls>"
      ],
      "js":[
         "jquery.js",
         "content.js"
      ]
   }
],
清单中有定义脚本何时运行的选项,但我从来没有在这些选项上取得过多的成功,您可以在这里探索它们:请参阅
run\u at
属性

您甚至可能需要设置超时或轮询来查询iFrame,因为其中一些可能是异步创建的,也就是说,在加载广告内容之后。

请不要将jQuery加载到每个页面(
内容\u脚本
与您的
匹配
)除非你需要。jQuery是一个85kiB的最小化代码。这是一个巨大的负担,让每一页都有负担。我们这些打开了100个选项卡的人怎么办?虽然你可能真的需要加载jQuery,但很可能你这样做是为了方便在你自己的代码中通过不使用普通JavaScript。如果是这样的话(我们无法知道),从用户的角度来看,这样做是一个非常糟糕的权衡。