文档手册

加载iframe后主窗口失去ipc通信能力

2024-06-23 12:09:27


此问题只出现在cef87版本中,新版本的没这个问题


解决办法:


application_callback.go
函数 appOnContextCreated, 30行增加

if frame.IsMain() {

    ipcRender.makeIPC( context)

}


这里的解决方案是进制子窗口获取IPC能力,这样就不会造成主窗口的IPC能力被抢断

另外,主窗口里边重新注册事件,也能抢回IPC能力

<div class="logo">
   你好,我是主窗口
    <button onclick="zhuce()">重新注册ipc</button>
</div>
<iframe src="fs://hou4/1.html" height="100px" frameborder="0"></iframe>
<script>
   ipc.on("nihao",function (v){
       console.log("主窗口收到信号",v)
   })

   function zhuce(){
       console.log("重新注册信号" )
       ipc.on("nihao",function (v){
           console.log("主窗口",v)
       })
   }
</script>