electron WebView向子页面出啊地数据的方法

我用到了2种方式,

1.和浏览器里一样通过 URL或是llocalstorage 等等

2.我也是刚接触electron 没几天, 就查到了一种方式  通过webContents监听did-finish-load,然后send().

文档上是这么讲的

Event: ‘did-finish-load‘

当导航完成时发出事件,onload 事件也完成.

然后在这个监听里面写  webContents.send();

webContents.send(channel[, arg1][, arg2][, ...])

  • channel String
  • arg (可选)

通过 channel 发送异步消息给渲染进程,你也可发送任意的参数.参数应该在 JSON 内部序列化,并且此后没有函数或原形链被包括了.

渲染进程可以通过使用 ipcRenderer 监听 channel 来处理消息

 function showDetailPage(index) {
 	try {
        let win = new BrowserWindow({
                    width: 800,
                    height: 500,
                    show: false,
                    maximizable: false,
                    minimizable: false,
                    resizable: false,
                    useContentSize: true,
                    //parent: currentWindow,
                    modal: false
                });

        		let dataJson=JSON.stringify(dataSource.data());
                // win.webContents.openDevTools();
                win.on(‘closed‘, function () { win = null })
                win.loadURL(‘file://‘ + __dirname + ‘/AnnouncementDetail.html?index=‘+index)//指定渲染的页面
                win.webContents.on(‘did-finish-load‘, function(){
			        win.webContents.send(‘dataJsonPort‘, dataJson);
			    });
                win.show();//打开一个窗口
  				win.webContents.openDevTools();

        // Open in Windows Client.
        //bound.openReportDetailPage(JSON.stringify(dataSource.data()), index);
      } catch(e) {

        console.log(e);
      }
    }

 这里发送了数据 dataJson,在子页面用

     remote,
        ipcRenderer
    } = require(‘electron‘);
    const BrowserWindow = require(‘electron‘).remote.BrowserWindow;
    const currentWindow = remote.getCurrentWindow();
        pIndex = getQueryUrlString(‘index‘);
    ipcRenderer.on(‘dataJsonPort‘, function(event, message) { // 监听父页面定义的端口
        initTable(message, pIndex); 把数据传给函数 initTable
    });

  

我也刚接触这个框架, 如果有不对的地方,还请大家多多交流

时间: 2024-08-10 23:27:38

electron WebView向子页面出啊地数据的方法的相关文章

对于android WebView加载不出Html5网页的解决方法

之前碰到一个问题,就是用webview去加载一个H5的页面,但是发现加载出现一片空白,但是我把我的链接放到浏览器里却又是可以的,找了会,被我老大叫过去搞别的了,然后被我老大找出来了,就是因为对某些标签的不支持,加上: settings.setDomStorageEnabled(true); 然后网页就显示出来了.

用JavaScript刷新框架子页面的七种方法

下面以三个页面分别命名为framedemo.html,top.html,button.html为例来具体说明如何做. 其中framedemo.html由上下两个页面组成,代码如下: < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> < HTML> < HEAD> < TITLE> frameDemo < /TITLE> < /HEAD> 

使用window的open方法实现子页面向父页面传值。

有时候我们会需要弹出一个子页面进行级联选择数据,并把选择好的数据填充到父页面. 此时一种简单的方法就是通过window.open()打开一个子页面,子页面提交的时候触发事件,在事件里将子页面填写的数据填充到父页面的方法是: window.opener.document.getElementById("父页面元素的id").value = '子页面填写的值';这个赋值方法仅适用于通过window.open()方法打开的父子页面.切勿使用于其他框架. 原文地址:https://www.cn

父子页面之间元素相互操作(iframe子页面)

js/jquery获取iframe子页面中元素的方法: 一.使用window.frames["iframe的ID"]获取元素 window.onload = function() { var oIframe = window.frames["oIframe"].document.getElementById("getFrame"); console.log(oIframe); } 注意:此处一定要加上window.onload或者DOMConte

javascript中父、子页面间调用

本文主要转自:http://www.360doc.com/content/11/0525/17/6161903_119333834.shtml                    http://zhidao.baidu.com/question/178864421.html 父子页面互相调用的几种方法总结: 第一种:采用window.open(),打开一个新窗口 父页面调用子页面: 子页面用window.open打开,调用方法为 var aa = window.open(); aa. chil

在IFream中,子页面调用父页面的方法

工作中遇到的具体情况是,父页面中的菜单点击,在框架中打开子页面.子页面保存新增的数据后,打开父页面的另一个子页面,此时要调用父页面菜单点击事件. var _parent = window.parent; //获得父页面的对象 _parent.父页面中的方法

js 弹出子页面刷新父页面

// 点击主页面的添加 跳转到JCXMUPDATE页面 function AddNewData() { //居中显示 var Url = "JCXMUPDATE.aspx?action=" + actionmethod; var height = 280; var width = 600; var win = OpenWin(Url, height, width, "no"); win.focus(); //使弹出的页面得到焦点 return false; //防止

2016 系统设计第一期 (档案一)MVC bootstrap model弹出子页面

通过bootstrap  弹出modal-dialog 子页面 ,例如我要弹出子页面:areaitem_sub_One.html. 具体步骤如下: 第一步:新建 areaitem_sub_One.html <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Cl

网页中window.open 弹出 父页面和子页面数值交互

//首先建立一个父页面 <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>父页面</title> <script> function tanchu(){ window.open("son.html",&