电子:在网络视图中确认和警告网站不显示

Electron : Confirm and Alert of a website in a webview doesn't show

我有一个 electron 应用程序,在我的 BrowserWindow 中加载的页面中有一个 webview。 本网站在某些情况下会发出确认或警报,但电子显示它们。有没有办法修改这种行为,例如我在网站页面上注入的代码?

您可以尝试注入如下代码:

window.confirm = function (msg) {
    console.log('always agree:', msg);
    return true;
};

覆盖确认事件。您可以对警报或您喜欢的内容执行相同的操作。

遗憾的是,我认为您无法通过 Electron 管理事件: request

更新

问题修改后,你要SHOW alert之类的。 所以,你可以按照回答:

promptconfirmalert 是阻止脚本执行线程直到用户输入的函数,这就是电子团队不支持它的原因。出于同样的原因,您可以使用一些第三方包。

这里有一些以异步方式提供此功能的包

https://www.npmjs.com/package/smalltalk

https://www.npmjs.com/package/vex-js

https://www.npmjs.com/package/dialogs

因为当用户在修改一些数据后想要退出页面时网站正在提醒。该网站正在使用 document.body 的 onbeforeunload 属性。 所以我正在使用 MutationObserver 编写一段代码来监听 webview 在这个属性中的注入代码并自己重置它加上使用位于 override.js 中的 Electron Confirm 来警告采用。由于其他问题尚未完成,但就是这样...