我有一个电子应用程序,打开一个带有某个网页的浏览器窗口。 现在,我想在该页面上执行一些javascript作为第一件事。但无论我尝试什么,它似乎总是在我打开的网页上的其他JS之后运行。
我尝试了一些事件,例如did-start-loading
,例如:
window.webContents.on('did-start-loading', () => {
window.webContents.executeJavaScript("console.log('test');");
})
将其直接放在loadUrl
:
window.loadURL(url);
window.webContents.executeJavaScript(`console.log('test');`);
但是在这两种情况下test
都会在页面上运行其他一些javascript之后被记录。
答案 0 :(得分:1)
在创建浏览器窗口时包含预加载脚本。 防爆。
mainWindow = new BrowserWindow({
webPreferences: {
preload: path.join(__dirname, 'renderer.js')
}
});
此处renderer.js
在该窗口的任何其他js文件之前加载。
来自源代码 -
/**
* Specifies a script that will be loaded before other scripts run in the page.
* This script will always have access to node APIs no matter whether node
* integration is turned on or off. The value should be the absolute file path to
* the script. When node integration is turned off, the preload script can
* reintroduce Node global symbols back to the global scope. See example .
*/
让我知道这是否有效!