安装或升级我正在处理的Chrome扩展程序后,不会重新注入内容脚本(在清单中指定),因此需要页面刷新才能使扩展能够正常工作.有没有办法强制脚本再次注入?
我相信我可以通过从清单中删除它们然后处理在后台页面中注入哪些页面来以编程方式再次注入它们,但这不是一个好的解决方案.
我不想自动刷新用户的标签,因为这可能会丢失一些数据.安装或升级扩展时,Safari会自动刷新所有页面.
发布更新后,我正在尝试为Chrome扩展程序的用户提供流畅的体验。
我在应用程序更新时重新注入了内容脚本,即使用户继续在扩展程序更新后未刷新的页面上继续使用我的扩展程序,我的功能也起作用。刷新页面是理想的选择,但是我不想强迫用户使用。
但是,在扩展程序更新之后,但在代码尝试从内容脚本/页面发送消息到后台页面时,在刷新页面之前,我的内容脚本控制台(将内容脚本插入的页面)中出现以下错误:
未捕获的错误:扩展上下文无效。
有办法“重建”连接吗?我尝试了长期使用的端口和常规消息传递-更新扩展具有相同的效果。
任何想法/方向表示赞赏。
这是我的简单消息传递代码(在内容脚本中),引发错误...但是可以与后台脚本进行通信:
chrome.runtime.sendMessage({ msg: "recordFeedback", obj: commentObj, source: source}, function(response){
console.log('Sent to DB...response was: ', response, response.recordFeedbackResponse);
});
Run Code Online (Sandbox Code Playgroud) 如果在Firefox的manifest.json中指定了内容脚本,Firefox还将为已打开的选项卡加载内容脚本并执行它们,即使选项卡已处于已加载和就绪状态.
为已打开的标签安装扩展程序时,Google Chrome不会添加任何内容脚本.为旧版标签刷新页面时会加载内容脚本.
我想问的是Firefox的行为是预期的还是bug?
firefox google-chrome google-chrome-extension firefox-addon-webextensions
我从 chrome 扩展开发开始,并且在开发过程中对扩展安装/更新流程和测试有几个问题:
谢谢!