问题描述:
在Aardio内嵌Electron浏览框打开第三方网站,点击里面的链接,如果这个链接是以新标签页打开的,则在Electron里是不会自动转换为本窗口打开的,而是在电脑的任务栏多出一个没有窗口的进程,显示的是Electron的图标.
想要的效果:
点击Electron浏览框里的第三方网站,不管这个链接是新窗口打开的,也让它变成在本窗口内跳转.不知道各位高手可有办法?
//快速入门
import win.ui;
/*DSG{{*/
var winform = win.form(text="在aardio中嵌入electron";right=1276;bottom=767;clipch=1)
winform.add(
button={cls="button";text="Button";left=855;top=594;right=954;bottom=635;db=1;dl=1;z=2};
custom={cls="custom";text="自定义控件";left=7;top=6;right=1271;bottom=581;db=1;dl=1;dr=1;dt=1;edge=1;z=1};
editLog={cls="edit";left=7;top=590;right=845;bottom=760;db=1;dl=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=3}
)
/*}}*/
winform.button.disabled = true;
winform.show()
import electron.runtime; // 如果希望自动安装electron到系统目录,请先导入electron.runtime
import electron.app; // 导入electron扩展库
var theApp = electron.app(winform.custom); // 创建electron进程,如果第4个参数为true,可以UTF8模式打开控制台 - 用于查看electron主进程输出
//启动主进程的 main.js
theApp.jsMain =/**
// 启动RPC服务允许aardio/electron互调函数,创建BrowserWindow主窗口
const aardio = require('aardio')
// 管理electron进程的生命周期
const app = require('electron').app
aardio.ready( win=> {
if( !aardio.studioInvoke ){
win.removeMenu()
}
win.on('closed', () => {
})
} )
app.on('window-all-closed', () => {
app.quit(); // 退出electron进程
})
**/
//启用远程调试,并自动分配空闲不会冲突的端口
theApp.remoteDebuggingPort = 0;
//直接打开网页
theApp.start("https://www.baidu.com");//
import web.socket.chrome;
var ws = web.socket.chrome();//wsRemotetDebugging
winform.editLog.print("正在等待electron打开远程调试服务.............")
ws.waitForConnected();//等待electron打开远程调试服务
winform.editLog.print("已连接到electron的WebSocket调试接口: " + ws.rpc.url);
winform.button.oncommand = function(id,event){
//使用远程调试端口控制网页
ws.Page.navigate( url = "https://www.baidu.com/s?wd=aardio")
}
winform.button.disabled = false;
win.loopMessage();