我使用 Firefox 中的工具栏按钮在普通窗口和隐私窗口之间切换。代码如下:
OpenBrowserWindow({private: !PrivateBrowsingUtils.isWindowPrivate(window)});
setTimeout(BrowserTryToCloseWindow, 80);
我使用“setTimeout”来防止某些闪烁。
当新窗口打开时,它会获得焦点。当执行命令“BrowserTryToCloseWindow”时,焦点返回到旧窗口。当旧窗口关闭时,新窗口确实具有焦点,但它在 Windows 任务栏中没有“选中/激活”。
我想我需要使用 ITaskbarList::ActivateTab 来激活任务栏中的新窗口。我有(非常)基本的方向:
Components.utils.import("resource://gre/modules/ctypes.jsm");
var lib = ctypes.open("user32.dll");
var taskBar = lib.declare(---
taskBar---
lib.close();
我将非常感激你的帮助。
Win 7,32 位,经典主题。
答案1
function togglePB(click)
{ var newWin = OpenBrowserWindow({ private: !PrivateBrowsingUtils.isWindowPrivate(window) });
if(click.button == 0)
newWin.addEventListener("focus", function switchWindows() { window.focus(); BrowserTryToCloseWindow(); newWin.removeEventListener("focus", switchWindows); });
}