我正在开发 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/