【问题标题】:Force Reload of Background Page From Popup?从弹出窗口强制重新加载背景页面?
【发布时间】:2018-01-31 18:35:19
【问题描述】:

我正在开发一个有时会破坏 background.js 页面的扩展程序。我可以从调用的弹出窗口中监听事件:

document.location.reload()

这可以重新加载 background.js。

但是,如果事情够麻烦,那么侦听器将不可用,我就被卡住了。我想在我的弹出窗口中添加一条“当所有其他方法都失败时按下此按钮”消息,该消息会弹出并刷新 background.html 和 background.js 页面。

有人知道如何在 Chrome 扩展程序中做到这一点吗?

【问题讨论】:

  • chrome.runtime.restart()
  • 看起来这只适用于信息亭模式。但是, chrome.runtime.reloadI() 显示出一些希望。感谢您为我指明方向!
  • 有没有办法在弹出窗口的背景页面上调用它?如果我必须在后台页面的上下文中调用它但 JS 很无聊我不知道如何执行命令。
  • 使用chrome.runtime.onMessage 在后台脚本中注册消息处理程序,然后使用chrome.runtime.sendMessage 向处理程序发送消息。见developer.chrome.com/apps/runtime#method-sendMessage
  • 感谢@holmberd,我遇到的问题是,如果 JS 在后台页面中死亡,则处理程序不再响应。或者运行时 API 会以某种方式解决这个问题?

标签: javascript google-chrome-extension


【解决方案1】:

正如 Deliaz 在 cmets 中指出的那样:

chrome.runtime.reload()

可以从弹出窗口中调用以重新加载整个扩展。

虽然这也会在调用时关闭弹出窗口,但这是我能找到的在 JS 死后强制刷新 background.js 的最佳解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2013-05-03
    相关资源
    最近更新 更多