这个问题非常古老,但是当您搜索尝试禁用此弹出消息的方法时,它仍然是google上的最高结果,因为扩展开发人员尚未将其扩展添加到chrome存储中,因此无权访问组策略到他们的操作系统,并且未使用chrome dev构建。在这种情况下,目前尚无官方解决方案,因此我将在此处发布一种“ hacky”解决方案。
这种方法使我们立即创建一个新窗口并关闭旧窗口。弹出窗口与原始窗口相关联,因此在正常使用情况下,由于该窗口关闭,因此从不显示弹出窗口。
这里最简单的解决方案是创建一个新窗口,然后关闭所有不在回调中刚刚创建的窗口的窗口:
chrome.windows.create({
type: 'normal',
focused: true,
state: 'maximized'
}, function(window) {
chrome.windows.getAll(function(windows) {
for (var i = 0; i < windows.length; i++) {
if (windows[i].id != window.id) {
chrome.windows.remove(windows[i].id);
}
}
});
});
另外,我们可以检测到该扩展的安装方式,并且仅在开发安装时才运行此代码(尽管最好将其从发行代码中完全删除)。首先,我们为chrome.management.getSelf调用创建回调函数,该函数允许我们检查扩展程序的安装类型,该函数基本上只是将上述代码包装在if语句中:
function suppress_dev_warning(info) {
if (info.installType == "development") {
chrome.windows.create({
type: 'normal',
focused: true,
state: 'maximized'
}, function(window) {
chrome.windows.getAll(function(windows) {
for (var i = 0; i < windows.length; i++) {
if (windows[i].id != window.id) {
chrome.windows.remove(windows[i].id);
}
}
});
});
}
}
接下来,我们使用回调函数调用chrome.management.getSelf:
chrome.management.getSelf(suppress_dev_warning);
此方法有一些警告,即我们假设一个持久的后台页面,这意味着在首次打开chrome时,该代码仅运行一次。第二个问题是,如果我们从chrome:// extensions页面重新加载/刷新扩展名,它将关闭当前打开的所有窗口,以我的经验,有时仍会显示警告。可以通过检查是否有任何选项卡对“ chrome:// extensions”打开并且不执行来避免这种特殊情况。