electron/javascript:node.js调用在选项卡式视图下的HTML脚本中不起作用
我试图在页面加载时触发一个函数。但是,页面加载回调包含node.js调用,这似乎被破坏了 该应用程序使用电子标签来实现标签式视图 代码 以下HTML是从选项卡加载的HTML页面:electron/javascript:node.js调用在选项卡式视图下的HTML脚本中不起作用,javascript,html,node.js,electron,Javascript,Html,Node.js,Electron,我试图在页面加载时触发一个函数。但是,页面加载回调包含node.js调用,这似乎被破坏了 该应用程序使用电子标签来实现标签式视图 代码 以下HTML是从选项卡加载的HTML页面:tab1.HTML 运输 JS const Path=require('Path')) 常数fs=要求('fs'); 常量glob=require('glob'); 函数OnLoadTransport(){ 警报(“此处”); var filepath=ListDir(uu dirname,“.json”); 警报(
tab1.HTML
运输
JS
const Path=require('Path'))
常数fs=要求('fs');
常量glob=require('glob');
函数OnLoadTransport(){
警报(“此处”);
var filepath=ListDir(uu dirname,“.json”);
警报(filepath.length.toString());
对于(var f=0;f file.endsWith(ext));
返回文件路径;
};
函数LoadJSON(路径,回调){
var xobj=新的XMLHttpRequest();
重写emimetype(“application/json”);
open('GET',path,true);//用文件的路径替换'my_data'
xobj.onreadystatechange=函数(){
if(xobj.readyState==4&&xobj.status==200){
//要求使用匿名回调as.open将不会返回值,而只是在异步模式下返回未定义的值
回调(xobj.responseText);
}
};
xobj.send(空);
}
渲染器
const{remote,ipcRenderer}=require('electron');
const TabGroup=require(“电子标签”);
const mainProc=remote.require('./main.js');//插入式主进程
const parser=new DOMParser();
设tabGroup=new tabGroup({
纽塔布:{
标题:“新建选项卡”
}
});
tabGroup.addTab({
标题:“表1”,
src:“./tab1.html”,
可关闭:错误,
主动:正确
});
tabGroup.addTab({
标题:“表2”,
src:“./tab2.html”,
可关闭:错误,
//可见:对,
活动:false//tab按钮已预先固定
});
main.js
const{app,BrowserWindow}=require('electron');
让mainWindow=null;
app.on('ready',()=>{
log('Hello from Electron');
主窗口=新浏览器窗口({
网络首选项:{
无融合:没错,
webviewTag:true
}
});
//mainWindow.webContents.openDevTools()
mainWindow.webContents.loadFile('./app/index.html');
//应用程序生命周期内的主窗口事件
mainWindow.webContents.on('did-fail-load',function()){
log(“加载index.html失败”);
})
})
index.html
MAM中心
//您还可以要求在此过程中运行其他文件
需要(“./renderer.js”)
期望值
在页面加载时,我希望看到一系列警报:
此处
。但没别的了。如果运行在Electronrenderer.js
中,同样的代码也能正常工作:我能够看到关于找到的JSON文件及其内容的警报
所以我猜,fs
调用不起作用。但是,Chromium控制台中没有错误
在这种情况下,我应该如何启用node.js支持
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
也许,我认为您在创建浏览器时忘记启用节点集成
。在renderer.js
中使用节点api。
当您在
main.js
上创建新的BrowserWindow
时,应该启用nodeIntegration
。我在我身边运行了这个程序,并很好地显示了json文件。是,在renderMy main.js上运行了BrowserWindow()
调用。我将添加更多详细信息。@kakyo带有nodeIntegration
flag?如果是,请告诉我如何创建新的BrowserWindow。代码片段将被删除good@kakyoElectron版本正在运行Electron 1.7.6