gpt4 book ai didi

javascript - Chrome 扩展程序 .json 文件上传时出错

转载 作者:行者123 更新时间:2023-12-02 13:52:52 26 4
gpt4 key购买 nike

我有一个manifest.json像这样的文件:

{
"name": "YouTube Trending to Paid promotion!",
"manifest_version": 2,
"version": "1.0",
"description": "Change Trending to Paid promotion!",
"permissions": ["tabs", "*://*.youtube.*/*"],
"browser_action": {
"default_icon": "icon.png"
},
"content_scripts": [
{
"matches": ["*://*.youtube.*/*"],
"js": ["popup.js"]
}
]
}

对于我的 JS 扩展,它只找到第 41 个 <span>并重命名内容。当我直接注入(inject)它时,效果很好。但是当我尝试上传它时,Chrome 给出了以下错误消息:Invalid value for 'content_scripts[0].matches[0]': Invalid host wildcard.

我的JS如下:

document.getElementsByTagName("span")[39].textContent="Paid promotion!";

有人知道导致错误的原因吗?

最佳答案

正如错误所述,问题在于您的 matches值无效。 Match Patterns文档解释说 *用于主机部分时,有以下要求:

* in the host can be followed only by a . or /
If * is in the host, it must be the first character

因此,您的匹配模式为:

"matches": ["*://*.youtube.*/*"],

无效,因为第二个 * ( youtube.* ) 是不允许的。

明确列出您想要匹配的顶级域名 (TLD)

您需要明确确定您想要匹配的 TLD,然后将其列表包含在您的 matches 中大批。例如:

"matches": [
"*://*.youtube.com/*",
"*://*.youtube.co.uk/*"
],

但是,对于 YouTube,他们似乎将所有流量重定向到 youtube.com 。因此,您可能可以很好地使用:

"matches": ["*://*.youtube.com/*"],

此匹配限制是设计使然。有large number of TLDs ,并且 future 可能会创建更多。无法保证您希望匹配的特定网站当前在每个 TLD 中都有一个域,也不保证它们会在创建的每个新 TLD 中获得一个域。因此,更好的解决方案是在指定主机的一部分时不允许 TLD 使用通配符。

或者,使用 include_globs ,但可能存在错误匹配

您可以使用 include_globs 获得你想要的东西,但这样做存在安全风险,因为可能存在错误匹配。你需要这样的东西:

"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["popup.js"],
"include_globs": [
"http://*.youtube.*/*",
"https://*.youtube.*/*"
]
}
]

这仍然不完美,因为它会匹配包含 .youtube.*/* 的 URL URL 中的任何位置(例如 http://foo.example.com/clone/www.youtube.com/myVideo )。不幸的是,因为include_globs是一个 glob,不是完整的正则表达式,您不能指定要匹配除 / 之外的所有字符,您可以在正则表达式中执行此操作(例如 [^/] )。总的来说,您最好明确确定您想要匹配的 TLD,然后将其列表包含在您的 matches 中。数组。

注意:在上面的示例中,您的 matches模式可以是 "*://*/*" ,或"<all_urls>" 。不同的是"<all_urls>"还匹配“file:”和“ftp:” URL,然后将其排除在 include_globs 之外。 .

关于javascript - Chrome 扩展程序 .json 文件上传时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com