【发布时间】:2017-12-07 04:56:21
【问题描述】:
我的 BrowserWindow 中加载的页面中有一个带有 webview 的电子应用程序。 该网站在某些情况下会发出确认或警报,但电子正在显示它们。有什么方法可以修改这种行为,例如在我在网站页面上注入的代码中?
【问题讨论】:
-
我这边有一个大错误,应该是 Electron 没有显示它们
标签: javascript webview electron alert
我的 BrowserWindow 中加载的页面中有一个带有 webview 的电子应用程序。 该网站在某些情况下会发出确认或警报,但电子正在显示它们。有什么方法可以修改这种行为,例如在我在网站页面上注入的代码中?
【问题讨论】:
标签: javascript webview electron alert
您可以尝试注入如下代码:
window.confirm = function (msg) {
console.log('always agree:', msg);
return true;
};
覆盖确认事件。您可以对警报或您喜欢的内容执行相同的操作。
遗憾的是,我认为您无法从 Electron 管理事件: request
更新
修改问题后,你想显示警报和类似的。 所以,你可以关注this 回答:
prompt、confirm 和 alert 是阻止脚本执行线程直到用户输入的函数,这就是电子团队不支持它的原因。相反,您可以出于同样的原因使用一些第三方软件包。
这里有一些以异步方式提供此功能的包
https://www.npmjs.com/package/smalltalk
【讨论】:
当用户在修改某些数据后想要退出页面时,网站会发出警报。该网站正在使用 document.body 的onbeforeunload 属性。
因此,我正在使用MutationObserver 编写一段代码来侦听此属性的webview 的注入代码并自己重置它,并使用位于override.js 中的Electron Confirm 来警告使用。由于其他问题尚未完成,但它是方式......
【讨论】: