Webview 的电子预加载脚本不起作用?

Electron preload script for webview not working?

我有这样加载的网络视图:

<webview id="link-view"
        src="http://url.espace.com/"
        preload="./preload.js"
        autosize="on"
        partition="persist:link"></webview>

在 preload.js 文件中:我有这个

console.log("test");

这根本行不通..

谁能解释一下?

我刚刚尝试了相同的场景,它按预期工作。

您是否打开了 <webview> 开发工具?由于 <webview> 有自己的开发工具,这将是我能看到预加载脚本未显示 console.log 输出的唯一原因。它们可以通过以下方式打开:

var webview = document.getElementById("link-view");
webview.openDevTools();

或者您的脚本路径不正确,我对此表示怀疑,因为您似乎对此很确定。

使用最新的 Electron 2.0.0beta-5,在撰写本文时),preload 属性需要一个 file:(或 asar:)协议后跟绝对路径。 ./preload.js 等路径似乎不再起作用并引发异常:Only "file:" protocol is supported in "preload" attribute.

这解决了我在 electron 3.0.0-beta.4 中使用 react.js

的问题
<webview src={'http://example.com'} preload={`file://${__dirname}/preload.js`}/>