|
试着用webkit结合 layui来做界面,毕竟layui里自带的js很多。
但却换导航时间长了,就报内存错误。如图
我先贴主文件吧。
- import win.ui;
- import win.ui.atom;
- import web.json;
- import thread.command;
- import console;
- /*DSG{{*/
- mainForm = win.form(text="我们都是好孩子";right=951;bottom=575;border="none";mode="popup")
- mainForm.add()
- /*}}*/
- //导入webkit支持库
- import web.kit.form;
- import web.kit.jsFunction;
- import console;
- var atom,hwnd = mainForm.atom("D40607E2-3287-433A-98F7-E3469BCA21F1");
- if(!atom){
- win.quitMessage(); return;
- }
- var wbKitView = web.kit.form(mainForm);//创建webkit浏览器窗口
- wbKitView.onDocumentReady = function(url,mainFrameJSState,frameJSState){
- console.dump("按F12调试试试")
- }
- //使用external接口定义网页脚本可调用的本地函数
- wbKitView.external = {
- aardioCall = function(str){
- mainForm.msgbox(str);
- };
- conlog = function(obj){
- var obj = web.json.strip(obj);
- console.dump(obj);
- }
-
- }
- //打开链接时触发
- wbKitView.onNavigation = function(url,navigationType){
- if( navigationType == 0/*_WKE_NAVIGATION_TYPE_LINKCLICK*/ ){
-
- }
- return true;
- }
- var windows_but = /**
- <li class="layui-nav-item">
- <a id="window-min" onclick="windowCommand('min')">0</a>
- </li>
- <li class="layui-nav-item">
- <a id="window-max" onclick="this.innerText = windowCommand('max')?'2':'1';">1</a>
- </li>
- <li class="layui-nav-item">
- <a id="window-close" onclick="windowCommand('close')">r</a>
- </li>
- **/
- import wsock.tcp.simpleHttpServer;
- wbKitView.go( wsock.tcp.simpleHttpServer.startUrl("/html/main.aardio") );
- wbKitView.wait();
- //可以使用CSS选择器获取HTML节点对象,为了保持网页的原特性,窗口开关后加
- wbKitView.querySelector(".footer").setAttribute("onmousedown","windowCommand('drag')"); //必须加这个,才能拖动窗口
- wbKitView.querySelector(".layui-header .drag").setAttribute("onmousedown","windowCommand('drag')"); //必须加这个,才能拖动窗口
- wbKitView.querySelector(".layui-header .layui-logo").innerText = mainForm.text;
- wbKitView.querySelector(".layui-header .layui-layout-right ").innerHTML = windows_but; //加windows窗体最大最小关闭按钮
- //添加可拖动边框
- import win.ui.resizeBorder;
- win.ui.resizeBorder(mainForm);
- //添加阴影
- import win.ui.shadow;
- win.ui.shadow(mainForm);
- //限定最大化范围
- import win.ui.minmax;
- win.ui.minmax(mainForm);
- mainForm.show();
- win.loopMessage();
复制代码
要用工程文件才能重现问题,我把工程文件放上来。
https://pan.baidu.com/s/1slSepm1
我的是64位windows7系统。我用这个界面在导航上快速却换,却换1,20次后就报错了。
|
|