Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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_Firefox Addon_Firefox Addon Webextensions - Fatal编程技术网

Javascript 在“基于”的内容脚本中运行不同的脚本;“火柴”;

Javascript 在“基于”的内容脚本中运行不同的脚本;“火柴”;,javascript,firefox-addon,firefox-addon-webextensions,Javascript,Firefox Addon,Firefox Addon Webextensions,我刚刚开始使用JavaScript,并试图在MDN教程中修改脚本 我试图在网页周围画一个红色或蓝色的框,这取决于它是http://还是https://。但是,只有一个脚本将运行 manifest.json是这样的: { “清单版本”:2, “名称”:“HTTPS检测”, “版本”:“1.0”, “描述”:“在受HTTPS保护的网站周围画一个蓝色边框。非HTTPS网站被赋予一个红色边框,表示它们不提供加密。”, “图标”:{ “48”:“icons/border-48.png” }, “内容脚本

我刚刚开始使用JavaScript,并试图在MDN教程中修改脚本

我试图在网页周围画一个红色或蓝色的框,这取决于它是http://还是https://。但是,只有一个脚本将运行

manifest.json是这样的:

{
“清单版本”:2,
“名称”:“HTTPS检测”,
“版本”:“1.0”,
“描述”:“在受HTTPS保护的网站周围画一个蓝色边框。非HTTPS网站被赋予一个红色边框,表示它们不提供加密。”,
“图标”:{
“48”:“icons/border-48.png”
},
“内容脚本”:[
{
“匹配项”:[“https://*/*”],
“js”:[“httpsdetec.js”],
“匹配项”:[“http://*/*”],
“js”:[“nohttps.js”]
}
]
}
键是一个对象数组(每个对象包含一个必需的
匹配的
键),而不仅仅是一个具有相同键的多个副本的单个对象。按照这种方式,在同一个对象中有两个
匹配项
和两个
js
键。这将被解释为文件中稍后的密钥,覆盖先前的密钥

对于每个匹配的
都应该是数组中的不同对象。您的manifest.json可能如下所示:

manifest.json:

{
“清单版本”:2,
“名称”:“HTTPS检测”,
“版本”:“1.0”,
“描述”:“在受HTTPS保护的网站周围画一个蓝色边框。非HTTPS网站被赋予一个红色边框,表示它们不提供加密。”,
“图标”:{
“48”:“icons/border-48.png”
},
“内容脚本”:[
{
“匹配项”:[“https://*/*”],
“js”:[“httpsdetec.js”]
},
{
“匹配项”:[“http://*/*”],
“js”:[“nohttps.js”]
}
]
}
或者,假设您只加载一个文件,您可以将相同的JavaScript文件加载到
http
https
页面中,并根据URL匹配
http
https
更改您正在执行的操作。如果两个脚本之间共享了一些代码,那么这样做可能会更有效率(或者您可以将共享代码放在一个文件中,该文件将加载到这两个脚本中,同时将一个单独的文件和非共享代码加载到每个脚本中)。在这种情况下,您可以在
matches
数组中使用一个匹配两个的匹配模式,也可以使用多个匹配模式