网络视图的电子预加载脚本不起作用

Electron preload script for webview not working?

本文关键字:加载 脚本 不起作用 视图 网络      更新时间:2023-09-26

我有这个网络视图,我像这样加载:

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

在预加载.js文件中:我有这个

console.log("test");

这甚至不起作用..

有人可以解释一下吗?

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

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

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

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

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

这使用 react 解决了我在电子 3.0.0-beta.4 中的问题.js

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