V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hoythan
V2EX  ›  问与答

Electron 新标签页打不开怎么处理

  •  
  •   hoythan · 2017-06-30 18:52:40 +08:00 · 1796 次点击
    这是一个创建于 2489 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Electron 打包的项目无法弹出新窗口,我是内嵌了一个网页,不知道如何打开新窗口...

    9 条回复    2017-07-04 21:29:13 +08:00
    SourceMan
        1
    SourceMan  
       2017-06-30 18:56:40 +08:00 via iPhone
    你的姿势不对
    hoythan
        2
    hoythan  
    OP
       2017-07-01 15:49:47 +08:00
    @SourceMan 啥意思呀...我想实现我放在 electron 的页面可以新窗口打开页面...
    hanai
        3
    hanai  
       2017-07-01 16:02:19 +08:00
    `window.open('http://www.baidu.com', '', 'width=800,height=650')`
    hoythan
        4
    hoythan  
    OP
       2017-07-01 17:27:46 +08:00
    @hanai 重点是这个网页的地址我不知道如何获取呀?你的意思是监听所有地址,判断打开就用这个 open 的方式打开吗?
    binux
        5
    binux  
       2017-07-01 17:34:08 +08:00
    _target=blank ?
    WittBulter
        6
    WittBulter  
       2017-07-01 17:51:11 +08:00   ❤️ 1
    没看懂你的意思
    如果你要调用外部浏览器打开:shell.openExternal
    在原有的渲染进程中打开一个新窗口:window.open,返回 BrowserWindow,可以操作 handle 改变这个窗口。注意父窗口 webPreferences 里面 nodeIntegration 的选项。
    当然你也可以试试 new BrowserWindow({parent: top}),模拟弹窗也可以这样的方式创建,同时把父窗口设置禁用
    你也可以新开一个 electron 渲染进程:new BrowserWindow,destroy 原来的窗口,新窗口 ready-to-show 之后 show 出来就可以了
    hoythan
        7
    hoythan  
    OP
       2017-07-02 17:39:02 +08:00
    @WittBulter 意思就是我在里面内嵌了一个网页,那个网页游 a 标签是需要新标签页打开的,也就是我需要新建一个窗口给他,我怎么操作才行,现在默认的状态是无法打开新标签页面的。
    hoythan
        8
    hoythan  
    OP
       2017-07-03 16:00:11 +08:00
    @WittBulter 这个网页里的 Js 写了 window.open 然后我不知道如何获取她这个 borwserwindow
    WittBulter
        9
    WittBulter  
       2017-07-04 21:29:13 +08:00
    @hoythan
    理想的做法是 ipc 通信传给主进程,需要打开一个窗口,链接是 xxx。
    主进程自然有这个 borwserwindow 存在那里,操作一下就行了,这也是应该的。如果 borwserwindow 返回的 handle 没有放在变量里存着,会导致页面突然崩掉或者被回收。

    简而言之,和网页的思路有一些不同,你需要把大部分逻辑放在主进程解决,这也是比较好的做法。(当然你也可以从渲染进程调用 remote 之类的东西去操作主进程的对象,这很容造成内存泄露很难 debug )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1710 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:40 · PVG 00:40 · LAX 09:40 · JFK 12:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.