gpt4 book ai didi

google-chrome-extension - 在 chrome 扩展内容脚本中使用 google 闭包库

转载 作者:行者123 更新时间:2023-12-02 03:43:39 25 4
gpt4 key购买 nike

我正在尝试在 chrome 扩展的内容脚本中使用 google 闭包库。

这就是 ma​​nifest.json 中的 content_scripts 的样子

 "content_scripts": [
{
"matches": ["<all_urls>"],
"js": [
"closure-library/closure/goog/base.js",
"content.js"
]
}

我收到以下错误:

goog.require could not find: goog.dom 

我认为一种选择是使用 closure-builder 来编译带有闭包代码的 content.js 并使用单个输出文件,但我需要在每次更改 content.js 后都这样做。

有没有其他方法可以在内容脚本中使用闭包库?

编辑:
即使我使用 closure-builder 方法,它也不能正常工作。它正在尝试在当前网页所在的域中查找 deps.js。例如。对于 google.com,我收到如下错误消息:

GET https://www.google.co.in/deps.js 404 (Not Found)
goog.writeScriptTag_
goog.importScript_
(anonymous function)

最佳答案

为了在我们的 chrome 扩展中使用闭包库,我们创建了一个空的 source.js,它只包含我们需要的闭包库中的所有模块。

示例 source.js(source.js 位于 myproject 目录中。)

goog.provide('myproject.start')
goog.require('goog.dom');
goog.require('goog.dom.query');
goog.require('goog.net.XhrIo');

然后我们使用closure-builder在此文件和闭包库源上生成一个输出文件,其中包含我们所需的所有闭包库模块的所有相关源。

相关命令:

closure-library/closure/bin/build/closurebuilder.py \
--root=closure-library/ \
--root=myproject/ \
--namespace="myproject.start"
--output_mode=compiled
--compilation_level=SIMPLE_OPTIMIZATIONS

请注意,您不能使用 ADVANCED_OPTIMIZATIONS,否则所有未使用的功能都将被剥离,这不是我们想要的。

将其包含在 manifest.json 中

"js": [
"compiled.js",
"content.js"
]

因此,只有当我们需要从闭包库代码中包含一些新模块时,我们才需要生成 compiled.js,这种情况很少见,而不是每次我们更改 content.js 时。

关于google-chrome-extension - 在 chrome 扩展内容脚本中使用 google 闭包库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18504084/

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