我在开发一个 chrome 的插件,现在遇到的问题是无法在 css 文件中调用图片文件,目录结构如下
/project-root│├── manifest.json├── css│ └── style.css├── images│ ├── icon-48.png│ ├── icon-32.jpg│ └── icon-16.png└── scripts └── content.js
在 manifest.json 文件中已经通过 web_accessible_resources 将对应图片引入
"web_accessible_resources": [ { "resources": [ "/images/*" ], "matches": [ "<all_urls>" ] } ], "content_scripts": [ { "matches": [ "<all_urls>" ], "js": [ "scripts/content.js" ], "css": [ "css/style.css" ] } ],
在 style.css 中
.text-icon { background-image: url('../images/icon-48.png'); background-size: cover; width: 20px; height: 20px;}
始终无法将图片载入。
我尝试过多个方法
const imageUrl = chrome.runtime.getURL('images/icon-48.png');console.log('Image URL:', imageUrl);icon.style.backgroundImage = `url(${imageUrl})`;
但得到的图片路径转字符了得到的结果是 background-image: url("chrome-extension://adfdaksfdafdk/images/icon-48.png");
上引号变成了 "
这样的字符。
请问在 manifest version3 中正确的调用图片是该怎么操作呢?
url()
里不需要引号.text-icon { backgound-image: url(var(--my-extension-icon48);}
然后用 content script 向目标页面写入:
document.documentElement.style.setProperty('--my-extension-icon48', '图标的 URL');
在 Manifest version 3 中,对于如何通过 CSS 调用图片,有一些重要的变化。Manifest version 3 引入了 web_accessible_resources
字段,用于指定可以从网页上安全访问的资源。然而,这个字段在处理 CSS 资源时有一些限制。
在你的情况下,你需要确保你的图片资源在 web_accessible_resources
字段中被正确指定,并且你的 CSS 文件中的 URL 是正确的。
首先,你应该确保你的 web_accessible_resources
字段中的 resources
部分正确地指定了你的图片资源。你的 manifest.json
文件应该看起来像这样:
{ "name": "My Extension", "version": "1.0", "manifest_version": 3, "web_accessible_resources": [ { "resources": [ "/images/icon-48.png", "/images/icon-32.jpg", "/images/icon-16.png" ], "matches": [ "<all_urls>" ] } ], "content_scripts": [ { "matches": [ "<all_urls>" ], "js": [ "scripts/content.js" ], "css": [ "css/style.css" ] } ]}
请注意,你的图片资源现在作为 web_accessible_resources
字段的一部分被明确列出。这样,它们就可以被你的内容脚本和任何网页安全地访问。
然后,在你的 CSS 文件中,你应该使用正确的 URL 来引用你的图片资源。在你的情况下,你应该使用相对于 manifest.json
文件的路径来引用你的图片资源。因此,你的 CSS 文件应该看起来像这样:
.text-icon { background-image: url('images/icon-48.png'); background-size: cover; width: 20px; height: 20px;}
请注意,我在这里使用了单引号 '
来包围 URL。这是因为在 CSS 中,单引号和双引号是可以互换的,而且使用单引号可以避免在你的 URL 中出现转义字符的问题。
问题内容: 我有一个注册事件处理程序的构造函数: 但是,我无法在回调内部访问已创建对象的属性。看起来好像不引用创建的对象,而是引用另一个对象。 我也尝试使用对象方法而不是匿名函数: 但是也有同样的问题 如何访问正确的对象? 问题答案: 你应该知道什么 (又名“上下文”)是每个功能内的特殊关键字和它的值仅取决于 如何 调用函数,而不是如何/何时/何它被定义。它不受其他变量之类的词法作用域的影响(箭头
这是我的简单代码 这条线呢 重定向到taskOKAction,但它只允许我通过URL发送参数(?task=123)。 我需要将object$task发送到taskOKAction,以便在屏幕上打印用户在表单中键入的内容。 我该怎么做?在询问好的解决方案是存储表单中的数据(例如,在数据库或文件中)并只在URL中传递对象ID的参数之前,我已经对stackoverflow发了火。我认为这是一个很好的解决
问题内容: 我正在尝试从外部PHP文件将JavaScript函数调用为JavaScript脚本。我的代码又大又不同,所以我在这里编写示例代码。 这是我的PHP代码: 这是我的JavaScript代码: 这就是我想要做的。 我 原来的 PHP文件不包含这些数学函数,但是想法是相同的。 如果一些它怎么没有一个妥善的解决办法,那么可能你 请 提出一种替代,但它应该从外部PHP调用值。 问题答案: 是的,
我试图从javascript本身调用另一个域中的服务。我可以请求跨域服务。但我无法从服务中检索信息。一些我如何被同源政策阻止。请帮我找出代码中的错误。 OPTIONS/SolartisGeoCodelookupService/Service/DrawRegions HTTP/1.1 主机:Cross_Domain_IP_Address 用户代理:Mozilla/5.0(x11;Linux x86_
问题内容: 例如,我有一个带有两种绑定方法的react组件: 在上面的代码中,我有两种绑定方法:一种是和一种是。功能有效,但无效。运行时,它返回错误: TypeError:无法读取未定义的属性“ handleRemoveComment” 问题答案: 问题在于这条线: 因为您忘记了绑定,映射回调方法,所以inside 方法将不会引用类上下文。 使用这些解决方案中的 任何一种 ,它将起作用。 1- 在
问题内容: 我希望有人可以为我澄清这里发生的事情。我在整数类中挖了一下,但是由于整数 覆盖 了运算符,所以我无法弄清楚出了什么问题。我的问题是这条线: 这是我的推理:我知道java通过值传递(或通过reference的值传递),因此我认为在下面的示例中,整数对象应每次递增。 这是我的预期输出: 这是实际输出。 为什么会这样? 问题答案: 有两个问题: 整数是通过值而不是通过引用传递的。在方法内部更