Google chrome extension Chrome扩展名:与;许可证“;及;“火柴”;(匹配模式)

Google chrome extension Chrome扩展名:与;许可证“;及;“火柴”;(匹配模式),google-chrome-extension,permissions,manifest,content-script,Google Chrome Extension,Permissions,Manifest,Content Script,我试图理解,以下两者之间的区别是什么: "permissions": [ "*.google.com" ], 及 1。域的权限 网页不能进行跨源XMLHttpRequest(AJAX),但扩展可以。在权限中添加域将允许您从内容脚本向指定域执行ajax请求 2。匹配项 内容脚本在加载的页面中工作。使用匹配可以指定要在哪些页面中插入内容脚本 示例:我想从openweathermap.org获取天气数据,并仅在google.com页面上显示数据 "permissions": [

我试图理解,以下两者之间的区别是什么:

  "permissions": [
    "*.google.com"
  ],


1。域的权限

网页不能进行跨源XMLHttpRequest(AJAX),但扩展可以。在权限中添加域将允许您从内容脚本向指定域执行ajax请求

2。匹配项

内容脚本在加载的页面中工作。使用
匹配
可以指定要在哪些页面中插入内容脚本

示例:我想从openweathermap.org获取天气数据,并仅在google.com页面上显示数据

"permissions": [
  "http://api.openweathermap.org/*"
],
"content_scripts": [
  {
    "matches": ["https://*.google.com/*"],
    "js": ["js/content.js"]
  }
]
这与“activeTab”有什么关系?我有一个按钮,用户应该能够单击它,然后在当前(任何)页面上运行脚本,并从API端点发送和检索信息。我不想在没有点击的情况下访问任何内容。API端点由用户在选项页面中提供。permissions=“activeTab”和matches=是执行此操作的最严格方式吗?
"permissions": [
  "http://api.openweathermap.org/*"
],
"content_scripts": [
  {
    "matches": ["https://*.google.com/*"],
    "js": ["js/content.js"]
  }
]