【背景】
折腾:
【规避解决】KindEditor第二次加载时无法加载已有html内容
期间,需要去搞懂:
js中的createWindow是如何使用的,语法如何
以及关闭窗口时候对应的事件是什么->便于后期加入销毁kindeditor的代码
【折腾过程】
1.先去搞懂:
createWindow(contextId, '修改团购描述', 700, 500, 'view/store/form/goodsdetaileditform.html');
的具体含义。
搜:
js createWindow
参考:
Basic Example to switch windows » Community Questions & Answers » Appcelerator Developer Center
javascript – jsdom document.createWindow() returns empty for non-empty document – Stack Overflow
结果都找不到具体的解释
2.突然想到,难道
createWindow不是纯js的函数,而是Jquery或者是easyUI的函数?
搜
easyui createwindow
JQuery createwindow
createwindow
还是没有找到真正的对应的函数。
3.在整个项目的代码中搜:
createWindow
结果:
才找到自己内部文件:
index.jsp
的函数:
function createWindow(contextId, title, width, height, url){ var win = 'win'+$.now(); cur_open_windowId = '#'+win; $(contextId).empty(); $(contextId).append('<div id="'+win+'" style="text-align:center;margin:0 auto; vertical-align:middle; display: table-cell; "></div>'); $(cur_open_windowId).window({ width:width, height:height, collapsible:false, minimizable:false, maximizable:false, title:title, modal:true }); $(cur_open_windowId).window('refresh', url); }
至此才明白:
原来此处的createWindow是自己项目内部自己写的函数啊。。。(不是我写的。)
4.接着继续去研究,如何获得窗口关闭时候的事件。
看到对应代码中有调用window,所以去搜:
easyUI window
参考:
JQuery EasyUI window 用法 – 摩根船长 – 博客园
window – Documentation – jQuery EasyUI
看到了很多的函数,比如:
- onBeforeClose
- onClose
- onBeforeDestroy
- onDestroy
等等函数,就是我此处所想要的了。
其他还有很多对应的事件:
- onLoad
- onBeforeOpen
- onOpen
5.对应的窗口关闭事件,对应动作是:
<div style="text-align:center;padding-bottom: 10px;"> <a href="javascript:void(0)" class="easyui-linkbutton" style="width: 100px;" onclick="$(cur_open_windowId).window('close')">关闭</a> </div>
对应的事件,则是参考了:
KindEditor 销毁与自动高度冲突解决 – 皓月青峰 – 博客园
应该是:
$(cur_open_windowId).window({ width:width, height:height, collapsible:false, minimizable:false, maximizable:false, title:title, cache: false, modal:true, onBeforeClose: function () { KindEditor.remove('textarea[name="Contents"]'); //当窗口关闭前销毁KindEditor } }); $(cur_open_windowId).window('refresh', url);
【总结】
关于easyUI的window,实际上是JQuery的window控件,其属性和基本的用法,可以参考官网的:
window – Documentation – jQuery EasyUI
而关于窗口关闭(和销毁)的事件是:
- onBeforeClose
- onClose
- onBeforeDestroy
- onDestroy
具体的写法就是:
$("#window_id").window({ width:width, height:height, ...... , onBeforeClose: function () { //add code here, do what you want } });
其他的更多的函数和属性,可以参考: