单击 link 后,如何保持 Chrome 扩展 window 打开?
How to keep the Chrome extension window open after I click a link?
我在使用一个简单的扩展程序时遇到了这个问题。
扩展由一堆 link 组成。当我单击单个 link 时,扩展关闭。
我想保持扩展程序 window 处于打开状态,这样我可以在关闭页面上的 extension/clicking 之前打开更多 link 以继续工作。
有没有一种方法可以让我在单击单个 link 后保持扩展程序打开,并且仅在单击 page/lose 焦点时关闭它?
谢谢。
切换到同一 window 中的另一个选项卡会关闭弹出窗口,因为弹出窗口在概念上绑定到调用它的选项卡。当您打开 URL 时,默认情况下它会在新的活动选项卡中打开(“活动”意味着它当前处于前台),旧选项卡将失去其活动状态,其弹出窗口将关闭。
解决方案是在非活动选项卡中打开链接,即在后台打开链接。
document.addEventListener('click', evt => {
const a = evt.target.closest('a[href]');
if (a) {
evt.preventDefault();
chrome.tabs.create({url: a.href, active: false});
}
});
或者,使用 chrome.windows.create 在新 window 中打开链接。
我在使用一个简单的扩展程序时遇到了这个问题。
扩展由一堆 link 组成。当我单击单个 link 时,扩展关闭。 我想保持扩展程序 window 处于打开状态,这样我可以在关闭页面上的 extension/clicking 之前打开更多 link 以继续工作。
有没有一种方法可以让我在单击单个 link 后保持扩展程序打开,并且仅在单击 page/lose 焦点时关闭它?
谢谢。
切换到同一 window 中的另一个选项卡会关闭弹出窗口,因为弹出窗口在概念上绑定到调用它的选项卡。当您打开 URL 时,默认情况下它会在新的活动选项卡中打开(“活动”意味着它当前处于前台),旧选项卡将失去其活动状态,其弹出窗口将关闭。
解决方案是在非活动选项卡中打开链接,即在后台打开链接。
document.addEventListener('click', evt => {
const a = evt.target.closest('a[href]');
if (a) {
evt.preventDefault();
chrome.tabs.create({url: a.href, active: false});
}
});
或者,使用 chrome.windows.create 在新 window 中打开链接。