javascript - 如何从扩展中退出 Chrome?

标签 javascript google-chrome-extension

我正在开发 Chrome 扩展程序,有时我需要退出浏览器的进程。

我尝试使用此代码关闭所有窗口:

chrome.windows.getCurrent({}, function(window) {
    chrome.windows.remove(window.id);
});

它适用于 Windows 和 Linux 但不适用于 Mac(因为在 Mac 上,关闭所有窗口并不意味着关闭浏览器)。

有没有办法从扩展程序中关闭浏览器?

谢谢。

最佳答案

安装最新版本的 Chrome(从 dev channel 获取或使用 Canary)并创建一个使用 chrome.processes 的扩展程序API。

似乎浏览器的进程 ID 为 0。因此,以下代码将终止 Chrome:

chrome.processes.terminate(0);

但是,由于没有记录,我建议获取进程列表,遍历列表并终止浏览器的进程:

chrome.processes.getProcessInfo([], false, function(processes) {
    processes.forEach(function(process) {
        if (process.type === 'browser') {
            chrome.processes.terminate(process.id);
        }
    });
});

适用于所有 Chrome 版本的替代方法:

  • 创建 NPAPI插入并终止 Chrome。
  • 托管您选择的本地服务器,该服务器可根据 (http) 请求终止您的浏览器。
  • 安装本地应用程序并使用 native message请求终止 Chrome 的 API。

这些方法都不是很方便,而且所有二进制代码和/或外部应用程序都可以工作。因此,我建议使用我在回答中概述的方法。

关于javascript - 如何从扩展中退出 Chrome?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18270868/

相关文章:

javascript - react-native: 在屏幕中央显示微调器

javascript - 从对象(日期对象)解构一个函数

javascript - 淡入不适用于空 DIV

google-chrome-extension - 如何从 JavaScript 打开 Google Chrome 控制台?

javascript - 如何将 Chrome 扩展功能移植到移动设备(特别是 jquery 和 trello)?

javascript - jQuery 问题。尝试使用 remove() 时单击了按钮

javascript - chrome.runtime.OnMessage.addListener 返回重复消息

javascript - 如何在类A中调用类A的方法?

javascript - 通过单击表格元素加载数据

javascript - 使用扩展将按钮添加到文本字段 - 不可点击