我正在尝试制作阻止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"
}
}
Cotent.js:
var elems = document.getElementsByTagName("iframe");
for (var i = 0, max = elems.length; i < max; i++) {
elems[i].hidden = true;
我的问题是,有没有办法让content.js
中的javascript工作?任何帮助将不胜感激。
答案 0 :(得分:3)
您的清单目前正在为您访问的每个页面添加jquery.js。您只需要将content.js添加到“content_scripts”数组中。假设content.js与manifest.json位于同一位置:
"content_scripts":[
{
"matches":[
"<all_urls>"
],
"js":[
"jquery.js",
"content.js"
]
}
],
此外,您还需要确保在DOM准备就绪时代码运行。因为你正在使用jQuery:
$(document).ready(function() {
//your code here
})
清单有一些选项可以定义脚本运行的时间,但我从未在这些选项上取得太大成功,您可以在此处进行探索:https://developer.chrome.com/extensions/content_scripts请参阅run_at
属性。
您甚至可能希望设置超时或轮询来查询iframe,因为其中一些可能是异步创建的,也就是说,在加载广告内容之后。