为什么这个 chrome.browserAction.setIcon 方法不起作用?

2024-05-26

我正在查看文档页面 https://developer.chrome.com/extensions/browserAction#method-setIcon我不知道我的代码有什么问题:

chrome.browserAction.setIcon({
  details.imageData = {
    "48": "Icons/iconfavorite48x.png",
    "64": "Icons/iconfavorite64x.png",
    "128": "Icons/iconfavorite128x.png"
  }
});

文件说:

请注意,“details.imageData = foo”相当于 'details.imageData = {'19': foo}'

所以我非常困惑


您的代码基本上是一个很大的语法错误。 JavaScript 对象文字期望是一个对的列表key: value。您不能(也不需要)在其中进行任何作业key part.

所以,修复only语法错误,它将是:

// Still wrong:
chrome.browserAction.setIcon({
  imageData : {
    "48": "Icons/iconfavorite48x.png",
    "64": "Icons/iconfavorite64x.png",
    "128": "Icons/iconfavorite128x.png"
  }
});

这将会失败。imageData期望获得像素数据的二进制斑点,例如,<canvas>。如果你想提供路径,你需要使用path财产:

// Still wrong:
chrome.browserAction.setIcon({
  path : {
    "48": "Icons/iconfavorite48x.png",
    "64": "Icons/iconfavorite64x.png",
    "128": "Icons/iconfavorite128x.png"
  }
});

请注意,您只能提供它期望的尺寸。如果包含任何其他内容,它将失败。引用文档:

如果适合一个屏幕空间单位的图像像素数等于scale,则将选择尺寸为scale * 19的图像。最初仅支持比例 1 和 2。

正常大小的图标是 19x19 像素;在高 DPI 屏幕上,Chrome 可能会显示 38x38 图标。

更新:由于 Chrome 在 53 中已切换到 Material Design,因此现在预计分别为 16x16 和 32x32。您可以毫无错误地提供新旧尺寸。

所以你可以这样做:

// Correct
chrome.browserAction.setIcon({
  path : {
    "19": "Icons/iconfavorite19x.png",
    "38": "Icons/iconfavorite38x.png"
  }
});

// Also correct
chrome.browserAction.setIcon({
  path : {
    "19": "Icons/iconfavorite19x.png"
  }
});

// Also correct
chrome.browserAction.setIcon({
  path : "Icons/iconfavorite19x.png"
});

图像没有have为了获得这些尺寸,如有必要,将对其进行缩放;但当然最好是准确的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这个 chrome.browserAction.setIcon 方法不起作用? 的相关文章

  • 将鼠标悬停时的鼠标光标更改为锚状样式

    如果我将鼠标悬停在div鼠标光标将更改为 HTML 锚点中的光标 我怎样才能做到这一点 假设你的div has an id myDiv 将以下内容添加到您的 CSS 中 这cursor pointer指定光标应与用于锚点 超链接 的手形图标
  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • 为什么我的淘汰单选按钮在另一个具有点击绑定的元素内时会失败?

    我有一个单选按钮列表 我想要点击 li 他们还检查单选按钮 这一切都有效 直到我放了一个name单选元素上的属性 然后我的代码停止工作 我的代码如下所示 ul li li ul li
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 如何更改 Google Maps v3 API for Directions 中的开始和结束标记图像

    我使用 DirectionsRender 绘制了一条路线 但我不知道如何用我自己的标记替换通用的 Google 标记 我知道并在正常的谷歌地图情况下使用它 但发现很难用开始和结束的方向标记来做到这一点 如果这是一个愚蠢的问题 感谢您的任何建
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • Bootstrap按钮加载+Ajax

    我正在使用 Twitter Bootstrap 的按钮加载状态 http twitter github com bootstrap javascript html buttons http twitter github com bootst
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0

随机推荐

  • 用于检查属性是否适用的 React 函数是什么? [复制]

    这个问题在这里已经有答案了 基于此问答 React 包装器 React 无法识别 DOM 元素上的 staticContext 属性 https stackoverflow com questions 49358560 react wrap
  • PowerShell,使用 Start-Job 和 Start-Process 测试异步任务的性能/效率

    我很想测试 PowerShell 中异步任务的性能 有用性Start ThreadJob Start Job and Start Process 我有一个包含大约 100 个 zip 文件的文件夹 因此进行了以下测试 New Item 00
  • 如何使用 VBS 将 ping 写入文本文件

    如果我使用 VBS 运行一些 CMD 命令 在本例中为 ping 如何使用 VBS 而不是 DOS 将命令写入文本文件 Set objCmdTest WScript CreateObject WScript Shell Set Output
  • 如何找出NPX运行的是哪个文件?

    当你跑步的时候 说 npx webpack在终端中 NPX 找到一个webpack打包某处并运行它 如何确定NXP运行的二进制文件的确切位置 我正在寻找类似的工具which https en wikipedia org wiki Which
  • 在 IntelliJ IDEA 中附加 Gradle 源

    当我使用默认的 gradle 包装器并创建目录选项在 IntelliJ 中创建 Gradle 项目后 我看到项目结构是通过以下命令创建的build gradle file IntelliJ 提示我 您可以配置 Gradle 包装器以使用带有
  • 如何根据条件禁用 TestNG 测试

    目前有没有办法根据条件禁用 TestNG 测试 我知道您当前可以在 TestNG 中禁用测试 Test enabled false group blah public void testCurrency 我想根据条件禁用相同的测试 但不知道
  • Firebase 验证电子邮件模板编辑

    是否有或将会有任何方式来编辑验证电子邮件模板或使用不同的语言 而不仅仅是英语 对于非英语用户来说 用户体验很糟糕 请您分享一下此功能的路线图 谢谢 托马斯 在发送 firebase 电子邮件之前 您可以设置模板的语言 您可以在firebas
  • wpf 控件宽度绑定

    我有两个带有内容的边框 第二个边框宽度根据情况而变化 在内容上 我试图将第一个边框绑定到第二个边框宽度 但是 它不起作用 我不确定我错过了什么 有人可以给我一些指导吗 下面是我目前正在尝试的示例
  • 在 R 中执行 read.csv 时未读取所有行

    这是输入文件 http www yourfilelink com get php fid 841283 http www yourfilelink com get php fid 841283 我执行了 options stringsAsF
  • Qt WebEngine 中 QWebInspector 的替代品是什么?

    代码片段的示例在这里 from PySide2 import QtCore QtGui QtWidgets QtWebChannel from PySide2 QtWebEngineWidgets import QWebEngineView
  • 为 javascript 编写一个真正具有包容性的随机方法

    Javascript MATH 对象有一个随机方法 该方法从集合 0 1 返回 0 含 0 1 不包括 有没有办法返回一个真正随机的方法 其中包括 1 e g var rand MATH random 2 if rand gt 1 rand
  • 自动创建文件“requirements.txt”

    有时我从以下网站下载Python源代码GitHub https en wikipedia org wiki GitHub并且不知道如何安装所有依赖项 如果没有的话要求 txt文件我必须手动创建它 给定Python源代码目录 是否可以创建要求
  • Django 模型实例是否可哈希?

    Django 模型实例是否可哈希 例如 我可以使用 Django 模型实例作为字典键 或者创建一组唯一的模型吗 如果它们是可哈希的 那么是什么导致两个 Django 模型实例被认为是相同的 它是否天真地实现了 Hashable 以便仅当它们
  • 在Python中将列表附加到自身[重复]

    这个问题在这里已经有答案了 我想将一个列表附加到自身 我认为这会起作用 x 1 2 y x extend x print y 我想回来 1 2 1 2 但我得到的只是内置的None 我究竟做错了什么 我正在使用Python v2 6 x e
  • Flutter VideoPlayer 无法播放 YouTube 视频

    我正在开发 flutter 应用程序并使用 ext video player 播放 YouTube 视频 当我在视频播放器上播放频道视频时 它不起作用 但我添加了 YouTube 上的任何视频 播放器正在工作 为什么会发生这样的事 impo
  • Flutter getter 没有为类指定,当指定时

    我越来越 dart 没有为该类定义 getter currentPickup PickupEvent undefined getter event currentPickup 错误 import dart async import pack
  • 无法登录 mediawiki:为了防止会话劫持而取消?

    我多年来一直使用托管在 AWS EC2 实例上的私有 mediawiki 我认为某些扩展出了问题 特别是在数学渲染过程中停止了 所以我尝试使用 Google Chrome 浏览器重新加载页面 缓存全部被删除 之后 我无法登录并看到此消息 您
  • 在设置/重置位方面,“分支”意味着什么?

    在一次采访中 我被问到 你如何设置或重置一点 这是一个很简单的问题 我也回答了 之后 他们问我如何做同样的事情 但不分支 我不知道什么是分支 我搜索并发现位摆弄黑客 http graphics stanford edu 7Eseander
  • Visual Studio 2010:如何重新映射 F2 来重命名文件而不是打开对象浏览器

    In Visual Studio 2010 Solution Explorer tree view how can I remap the F2 key to Rename the Selected File rather than ope
  • 为什么这个 chrome.browserAction.setIcon 方法不起作用?

    我正在查看文档页面 https developer chrome com extensions browserAction method setIcon我不知道我的代码有什么问题 chrome browserAction setIcon d