我正在将我的 chrome 扩展从清单 v2 更新到 v3。这是旧的清单:
清单 V2:
{
"manifest_version": 2,
"name": "Legacy Search Assistant",
"version": "0.1.1",
"content_scripts": [
{
"matches": [
"https://*.legacysite.io/*","*://*/api*"
],
"js": ["jquery-3.6.0.min.js","content.js"]
}
],
"options_page": "options.html",
"background": {
"scripts": ["jsencrypt.min.js", "jquery-3.6.0.min.js", "background.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "Legacy Search"
},
"permissions": [
"storage"
]
}
Run Code Online (Sandbox Code Playgroud)
由于 jsencrypt.min.js 已加载到清单中,我可以在 background.js 中调用它的函数,但现在我已经转到清单 v3,我在让服务工作人员访问此库时遇到问题。
例如,当我在background.js中进行此调用时:
importScripts("/scripts/jsencrypt.min.js");
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误:
Error handling response: Error: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'chrome-extension://<extension ID>/scripts/jsencrypt.min.js' failed to load.
Run Code Online (Sandbox Code Playgroud)
如果我单击错误中的链接,它会将我直接带到我想要加载的库。 …
javascript google-chrome-extension chrome-extension-manifest-v3
我正在尝试将人员表格呈现为XML.我的NAME字段是varchar而我的AGE字段是int.每次它为NULL时,XML转换都会将其转换为0.我希望它是''(如果它是NULL,那么XML会跳过该字段).
SELECT (SELECT CASE WHEN NAME IS NULL THEN ' ' ELSE NAME END,
CASE WHEN AGE IS NULL THEN ' ' ELSE AGE END
FROM TABLE.PERSONS FOR XML PATH('PERSON'), TYPE)
FOR XML PATH('PERSONS'), TYPE
Run Code Online (Sandbox Code Playgroud)
结果是当age为NULL时:
<PERSONS>
<PERSON>
<NAME>JIM</NAME>
<AGE>0</AGE>
</PERSON>
</PERSONS>
Run Code Online (Sandbox Code Playgroud)
我希望它是:
<PERSONS>
<PERSON>
<NAME>JIM</NAME>
<AGE> </AGE>
</PERSON>
</PERSONS>
Run Code Online (Sandbox Code Playgroud)