我正在浏览器操作中运行chrome扩展程序。作为开发人员,我打开检查弹出窗口并运行,因此它将在当前选项卡中保持打开状态。当我打开另一个标签时,"检查弹出窗口"我在开发者模式下打开的东西正在关闭。有没有办法让"检查弹出窗口"即使我打开其他标签,也会持续运行?
答案 0 :(得分:1)
你不能;通常,任何类型的焦点丢失都会导致弹出窗口关闭。
在检查弹出窗口时,为了便于调试,它对焦点丢失不太敏感,但更改选项卡仍会导致它关闭(因此,附加到它的Dev Tools窗口也会关闭)。
我的猜测是,如果当前标签在调用弹出窗口后发生更改,则Chrome API的一些重要期望会丢失。例如,.then(function(dbResult) {
var startLocation = req.body.startLocation;
var promises = dbResult.map(function(item) {
if (item.length !== 1) {
return item;
}
return googleDirection.directionRequest(
startlocation.latitude + "," + startlocation.longitude,
item[0].startLatitude + "," + item[0].startLongitude,
true,
false
).then(function(distance) {
var distances = distance.routes.map(function (route) {
return route.legs[0].distance.value;
});
item.tripStartToConstrStart = Math.min.apply(Math, distances);
return item;
});
});
return Promise.all(promises);
})
.then(function(dbResult) {
console.log(dbResult)
})
权限将中断。那,或者它可能只是一个错误。
底线:这在正常使用中永远不会发生,所以这种无能并不重要。如果您需要访问多个选项卡,请在单独的窗口中打开它们:切换到它不会导致被检查的弹出窗口关闭。