Electron学习笔记(十一)—— 常用api____window.open和BrowserWindowProxy

window.open 函数

打开一个新窗口并加载 URL。

当调用  window.open 以在网页中创建新窗口时,将为url 创建一个新的BrowserWindow 实例,并返回一个代理至 window.open 以让页面对其进行有限的控制。

该代理具有有限的标准功能,与传统网页兼容。要完全控制新窗口,你应该直接创建一个BrowserWindow

默认情况下, 新创建的 BrowserWindow 将继承父窗口的选项。若要重写继承的选项, 可以在 features 字符串中设置它们。

window.open(url[, frameName][, features])

例子:通过window.open打开子窗口,父子窗口之间通信的例子

step1:在父窗口中打开子窗口,以及在父窗口监听子窗口传来的信息

step2:创建子窗口,在子窗口中传递信息给父窗口

将消息发送给指定来源的父窗口,如果未指定来源则发送给*,即所有窗口。

window.opener.postMessage(message, targetOrigin)
 ——message String
 ——targetOrigin String
   【
     targetOrigin :这个参数称作“目标域”,注意啦,是目标域不是本域!比如,你想在2.com的网页上往 
                    1.com网页上传消息, 
                    那么这个参数就是“http://1.com/”,而不是2.com.

                     另外,一个完整的域包括:

                    协议,主机名,端口号。如:http://g.cn:80/
    】

step3:在父窗口中关闭子窗口

那么怎么在父窗口中取到子窗口呢?

这里涉及到一个类:BrowserWindowProxy

操纵子浏览器窗口

进程: 渲染进程

使用 window.open 创建一个新窗口时会返回一个 BrowserWindowProxy对象,并提供一个有限功能的子窗口.

实例方法

BrowserWindowProxy 对象具有以下实例方法:

win.blur()

将焦点从子窗口中移除.

win.close()

不调用卸载事件,便关闭了子窗口。

win.eval(code)

  • code String

Eval子窗口中的代码

win.focus()

聚焦子窗口(即窗口置顶)

win.print()

调用子窗口上的打印对话框

win.postMessage(message, targetOrigin)

  • message any
  • targetOrigin String

调通过指定位置或用*来代替不明位置,向子窗口发送信息

除了这些方法,子窗口还可以无特性和使用单一方法来实现 window.opener 对象.

代码如下

 

step4:父窗口向子窗口传递信息

 第一种方法就是用location.href

 第二种方法如下:借用到了BrowserWindowProxy 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值