Javascript 如何使用WebExtensions更改背景图像?

Javascript 如何使用WebExtensions更改背景图像?,javascript,firefox,firefox-addon-webextensions,Javascript,Firefox,Firefox Addon Webextensions,我想用一个WebExtension来更改Firefox新标签页(about:newtab)的背景图像。我尝试过此代码,但不起作用: window.addEventListener("load",function(){ if(window.document.URL == "about:newtab"){ window.document.body.style.backgroundImage = "url(https://images-assets.nasa.gov/image/i

我想用一个WebExtension来更改Firefox新标签页(about:newtab)的背景图像。我尝试过此代码,但不起作用:

window.addEventListener("load",function(){
   if(window.document.URL == "about:newtab"){
       window.document.body.style.backgroundImage = "url(https://images-assets.nasa.gov/image/iss050e066094/iss050e066094~orig.jpg)"
   }
});
manifest.json:

{
  "description": "An example extension",
  "homepage_url": "",
  "manifest_version": 2,
  "name": "wallpaper",
  "permissions": [
    "alarms",
    "theme",
    "<all_urls>"
  ],
  "background": {
    "scripts": ["background.js"]
  },
  "version": "1.0",
  "gecko": {
      "strict_min_version": "55.0a2"
  }
}
{
“说明”:“示例扩展”,
“主页地址”:“,
“清单版本”:2,
“名称”:“壁纸”,
“权限”:[
“警报”,
“主题”,
""
],
“背景”:{
“脚本”:[“background.js”]
},
“版本”:“1.0”,
“壁虎”:{
“严格最低版本”:“55.0a2”
}
}

提前感谢。

由于安全原因,您目前无法更改关于:页

如果您确实想在about:newtab上创建另一个背景图像,则需要使用自己的实现覆盖新选项卡页面。Newtab重写自Firefox 54(在中实现)以来就可用

你可以这样做:

"chrome_url_overrides" : {
  "newtab": "my-new-tab.html"
}
所以你的清单会变成这样

{
  "description": "An example extension",
  "homepage_url": "",
  "manifest_version": 2,
  "name": "wallpaper",
  "permissions": [
    "alarms",
    "theme",
    "<all_urls>"
  ],
  "background": {
    "scripts": ["background.js"]
  },
  "version": "1.0",
  "gecko": {
      "strict_min_version": "55.0a2"
  },
  "chrome_url_overrides" : {
    "newtab": "my-new-tab.html"
  }
}
{
“说明”:“示例扩展”,
“主页地址”:“,
“清单版本”:2,
“名称”:“壁纸”,
“权限”:[
“警报”,
“主题”,
“
  • 可能您也想实现搜索。由于您还无法读取搜索引擎(),您可能希望通过在加载项中硬编码URL来实现搜索,添加下拉列表以选择您喜爱的搜索引擎。接下来,当用户输入查询并按ENTER键时,您可以替换当前的“新建”选项卡使用该方法使用搜索结果页创建页面,将url属性替换为搜索页面+查询的url

  • 我打开了一个错误报告,请求API将背景图像设置为about:newtab和about:home。请参阅。

    由于安全原因,目前无法更改about:页面

    如果您确实想在about:newtab上创建另一个背景图像,则需要使用自己的实现覆盖新选项卡页面。newtab覆盖自Firefox 54(在中实现)以来就可用

    你可以这样做:

    "chrome_url_overrides" : {
      "newtab": "my-new-tab.html"
    }
    
    所以你的清单会变成这样

    {
      "description": "An example extension",
      "homepage_url": "",
      "manifest_version": 2,
      "name": "wallpaper",
      "permissions": [
        "alarms",
        "theme",
        "<all_urls>"
      ],
      "background": {
        "scripts": ["background.js"]
      },
      "version": "1.0",
      "gecko": {
          "strict_min_version": "55.0a2"
      },
      "chrome_url_overrides" : {
        "newtab": "my-new-tab.html"
      }
    }
    
    {
    “说明”:“示例扩展”,
    “主页地址”:“,
    “清单版本”:2,
    “名称”:“壁纸”,
    “权限”:[
    “警报”,
    “主题”,
    “
    
  • 可能您也想实现搜索。由于您还无法读取搜索引擎(),您可能希望通过在加载项中硬编码URL来实现搜索,添加下拉列表以选择您喜爱的搜索引擎。接下来,当用户输入查询并按ENTER键时,您可以替换当前的“新建”选项卡使用该方法使用搜索结果页创建页面,将url属性替换为搜索页面+查询的url

  • 我打开了一个错误报告,要求提供一个API,以将背景图像设置为about:newtab和about:home。请参阅。

    我建议您阅读该页面(可能需要阅读从那里链接的页面)。它包含总体架构信息,这将有助于您了解事物的总体组织/完成方式。我已经阅读了您给我的链接,但没有找到解决方案。此外,我阅读了主题文档,但没有找到答案。好的。我指给您该文档,因为您为您的background.js f显示的代码ile意味着您不知道WebExtensions是如何组织的。在该脚本中使用
    加载
    侦听器并更改
    正文
    的样式是没有意义的,而且是完全无效的。虽然背景脚本与页面相关联,但该页面从未显示。我还没有玩过
    主题
    接口(,),因此我不确定您所描述的是否可以使用WebExtensions(这当然不方便)。OTOH,一种可能性是您可以使用定义不同的新选项卡页面,但这并不相同。但是,我对
    主题
    接口的理解是,它会影响标题(或“chrome”部分)我建议您阅读该页面(可能通过阅读从那里链接的页面进行工作)。它包含总体架构信息,这将有助于您了解事物的总体组织/完成方式。我已经阅读了您给我的链接,但没有找到解决方案。此外,我阅读了主题文档,但没有找到答案。好的。我指给您该文档,因为您为您的background.js f显示的代码ile意味着您不知道WebExtensions是如何组织的。在该脚本中使用
    加载
    侦听器并更改
    正文
    的样式是没有意义的,而且是完全无效的。虽然背景脚本与页面相关联,但该页面从未显示。我还没有玩过
    主题
    接口(,),因此我不确定您所描述的是否可以使用WebExtensions(这当然不方便)。OTOH,一种可能性是您可以使用定义不同的新选项卡页面,但这并不相同。但是,我对
    主题
    接口的理解是,它会影响标题(或“chrome”部分)仅适用于浏览器。