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.0(beta-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`}/>
我有这样加载的网络视图:
<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.0(beta-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`}/>