gpt4 book ai didi

javascript - Electron:防止中键点击

转载 作者:行者123 更新时间:2023-11-29 19:03:44 24 4
gpt4 key购买 nike

在 Electron 中,可以使用以下方法在 Web 浏览器中打开链接,而不是在 Electron 中通过左键单击:

const {shell} = require('electron')
function openUrl(e) {
var e = window.e || e;
if (e.target.localName == 'a') {
e.preventDefault();
shell.openExternal(e.target.href);
}
}
window.addEventListener('click', openUrl, false);

但是,单击鼠标中键 按钮不起作用。 mousedownmouseup 在新的 Electron 窗口和网络浏览器中打开链接(可能是因为它在创建新的 Electron 窗口后触发)。

如何在 Electron 中停止通过中键单击打开新 Electron 窗口的链接?

最佳答案

您必须使用 auxclick ( https://developer.mozilla.org/en-US/docs/Web/Events/auxclick ) 它处理所有非左键单击,并且是通过鼠标中键创建 Electron 窗口的关键事件。此代码用于预加载脚本或启用的 nodeIntegration

中的 render 过程
const { shell } = require('electron')

function auxclickHandler(event) {
if (e.target.localName == 'a') {
event.preventDefault();
shell.openExternal(url);
}
}

document.addEventListener('auxclick', callback, false)

替代 如果您想将任何 类型的链接重定向到内部浏览器。此代码用于主进程

这是 Electron Fiddle 的 fiddle https://gist.github.com/Hammster/ce4fac29deaf3600665d9534e3a32317

const { shell } = require('electron')

mainWindow.webContents.on('new-window', function (event, url) {
event.preventDefault()
shell.openExternal(url)
})

关于javascript - Electron:防止中键点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44578022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com