代码之家  ›  专栏  ›  技术社区  ›  pushkin Void Star

如何在电子应用程序中切换devtools,同时专注于devtools?

  •  0
  • pushkin Void Star  · 技术社区  · 6 年前

    我想让我的电子应用程序切换开发工具,以响应F12。

    const currentWebContents = require("electron").remote.getCurrentWebContents();
    window.addEventListener("keydown", (e: KeyboardEvent) => {
        if (e.keyCode === 123) { // F12
            currentWebContents.toggleDevTools();
        }
    });
    

    当我把注意力集中在主页上时,这个方法就有效了。然而,在开发工具打开之后,焦点立即转移到开发工具上,因此 12层

    toggleDevTools() 是这样的:

    if (currentWebContents.devToolsWebContents) {
        currentWebContents.devToolsWebContents.on("before-input-event", (event: Electron.Event, input: Electron.Input) => {
            if (input.type === "keyDown" && input.key === "F12") {
                currentWebContents.toggleDevTools();
            }
        });
    }
    

    然而, currentWebContents.devToolsWebContents null 就在打开后。我的第一个问题是如何确保 -有没有办法等到它完全打开?

    if (currentWebContents.devToolsWebContents) 编码到 setTimeout(..., 1000);

    但是,我的 before-input-event 当专注于devtools时,按键不会触发处理程序。

    有人知道为什么吗?

    0 回复  |  直到 5 年前