Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
electron/javascript:node.js调用在选项卡式视图下的HTML脚本中不起作用_Javascript_Html_Node.js_Electron - Fatal编程技术网

electron/javascript:node.js调用在选项卡式视图下的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”); 警报(

我试图在页面加载时触发一个函数。但是,页面加载回调包含node.js调用,这似乎被破坏了

该应用程序使用电子标签来实现标签式视图

代码 以下HTML是从选项卡加载的HTML页面:
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”)
期望值 在页面加载时,我希望看到一系列警报:

  • 此处
  • 找到的JSON文件的路径
  • JSON文件的内容
  • 观察 使用此代码,我可以在此处查看警报
    。但没别的了。如果运行在Electron
    renderer.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