是否可以将托管的js和css添加到content_script chrome插件。
"content_scripts": [
{
"matches": ["*://*/*"],
"css": ["bootstrap.min.css", "mystyles.css"],
"js": ["jquery-1.7.2.min.js", "myscript.js"],
"all_frames" : true
}
]
这里的js和css应该在manifest.json
的同一个包中我想添加像
这样的托管js"content_scripts": [
{
"matches": ["*://*/*"],
"css": ["bootstrap.min.css", "mystyles.css"],
"js": ["https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js", "https://www.example.com/js/myscript.js"],
"all_frames" : true
}
]
答案 0 :(得分:3)
不,不能那样做。
首先,从不使用CDN将jQuery等库提供给您的扩展程序;实际上没有意义,你在节省什么?如果不存在网络延迟,则会出现网络延迟。
接下来,app逻辑脚本。我可以理解比更新扩展更快地更新它们的要求,然后它是有道理的。但是,您不能在清单中包含类似的非本地文件。
但是,您可以执行以下操作:
注入一个小的“bootstrap”脚本,即本地脚本。
Message来自bootstrap脚本的background page请求注入其余内容。
后台页面提取脚本with XHR(请记住,您需要主机权限)。
我建议也使用某种缓存,例如每N分钟/小时/天和saving a copy locally in chrome.storage
尝试获取一个新版本。否则,再次,你会得到可怕的延迟。
后台页面使用
注入脚本chrome.tabs.executeScript(tabId, {code: "..."})
请注意,所有这些都相对复杂,并且非常不鼓励,除非您使用HTTPS来提供脚本(否则您对MitM攻击持开放态度)。除非您有比更新扩展更快更新应用程序逻辑的特定要求,否则请不要这样做。