代码之家  ›  专栏  ›  技术社区  ›  Traveling Tech Guy

如何刷新/重新加载Chrome扩展?

  •  14
  • Traveling Tech Guy  · 技术社区  · 16 年前


    问题是我找不到一种(编程的)方法在保存选项时刷新扩展。我试着打电话 location.reload(); 右键单击扩展页本身时,从扩展页中删除-无效。我进一步追问,并试图看看Chrome是什么 chrome://extensions/ 页面不需要重新加载扩展,并找到以下代码:

    /**
     * Handles a 'reload' button getting clicked.
     */
    function handleReloadExtension(node) {
      // Tell the C++ ExtensionDOMHandler to reload the extension.
      chrome.send('reload', [node.extensionId]);
    }
    

    将此代码复制到我的事件处理程序没有帮助(是的,我尝试替换 [node.extensionId] 使用实际代码)。有人能帮助我以正确的方式来做这件事吗,或者给我指出一个正确的扩展代码?一旦完成,我会把扩展和它的来源放在我的博客上。

    4 回复  |  直到 15 年前
        1
  •  45
  •   Konstantin Smolyanin    13 年前

    现在最简单的方法是对 重新装填 chrome.runtime.reload() 到 重新加载另一个 chrome.management.setEnabled() . 它需要 在舱单上。

        2
  •  5
  •   Pierre-Antoine LaFayette    16 年前

    您的扩展名的JavaScript代码不能访问ChrimeStand功能,如NeTab页页面、历史和扩展页面使用它来与这些页面的C++控制器代码通信。

    here

        3
  •  5
  •   Marek    16 年前

    window.location.reload()适合我

    我使用的是Chromium6.x,所以它可能会在更新的版本中修复

        4
  •  3
  •   Joe    11 年前

    我只是和你有同样的问题 an extension .

    事实证明,您可以在中侦听存储更改 background.js chrome.storage.onChanged 并让其执行刷新逻辑。

    例如:

    // Perform a reload any time the user clicks "Save"
    chrome.storage.onChanged.addListener(function(changes, namespace) {
      chrome.storage.sync.get({
        profileId: 0
      }, function(items) {
    
        // Update status bar text here
    
      });
    });
    

    changes 要考虑的参数。 chrome.runtime.reload() 可能更容易,但这会减少开销。

        5
  •  2
  •   kano    7 年前

    runtime.reload() - https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/reload

    对于Chrome,您可能需要使用 chrome.runtime.reload() webextension-polyfill ).