重新加载 Chrome 扩展程序内容脚本执行环境
Reloading a Chrome extension content script execution environment
我想模仿window.location.reload()
的效果,但仅适用于我的内容脚本正在运行的"孤立世界"。也就是说,删除所有现有的 JS,尤其是回调和事件绑定。有没有好方法可以做到这一点?
注意:chrome.runtime.reload()
不适用于此;它具有重新加载扩展和后台脚本的效果,但在用户刷新之前不会重新加载现有内容脚本。
据我所知,没有自动方法可以重新注入内容脚本,例如在扩展更新期间。您可以做的是找到其 url 与所需模式匹配的所有选项卡,并使用 chrome.tabs.executeScript
以编程方式重新注入内容脚本。
请注意,此方法需要为与内容脚本使用的 URL 模式相同的 URL 模式添加权限。
Manifest.json:
"content_scripts":
[
{
"matches": [ "http://*.google.com/*" ],
"js": [ "content_script.js" ]
}
],
"permissions":
[
"tabs", "http://*.google.com/*"
]
背景.js:
chrome.runtime.reload();
chrome.tabs.query({ url: "http://*.google.com/*" }, function(tabs)
{
for(var i = 0; i < tabs.length; i++)
{
chrome.tabs.executeScript(tabs[i].id, { file: "content_script.js" }, function() {});
}
});
相关文章:
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 从应用程序脚本检查谷歌网站访问权限
- 在谷歌应用程序脚本中转换为空格的制表符
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 仅为一个窗体运行应用程序脚本
- 谷歌应用程序脚本示例-如何更改单选按钮的列表框相关值
- 使用谷歌应用程序脚本制作基于谷歌电子表格的带有列表框的网络应用程序
- 应用程序脚本中导入HTML的数据擦除;谷歌表格
- JavaScript onScroll在谷歌应用程序脚本web应用程序中不起作用
- getRange(单元格)在谷歌应用程序脚本中不起作用
- Chrome没有加载最新版本的web工作程序脚本(运行缓存版本)
- 如何打开文件对象(HTML)并在谷歌应用程序脚本中解析它
- 谷歌应用程序脚本html服务和加载谷歌地图javascript api V3
- 如何使用谷歌应用程序脚本从电子邮件中提取内联文件/图像
- 谷歌应用程序脚本-onFormSubmit-复制到电子表格中的单元格
- 在谷歌应用程序脚本中,如何在满足条件的情况下只发送一次电子邮件
- 若语句出错,谷歌应用程序脚本
- 如何将数组(Google应用程序脚本)返回到HTML侧边栏