偶滴神,工作都一年了,终于在 “赶鸭子上树”的逼迫下,做了些代码开发工作。也终于有时间整理一下自己纷扰无比的代码了。纯粹是自己积累,自娱自乐而已。
showModalDialog 首先声明 firefox不支持showModalDialog ,只能在IE下用。
showModalDialog 很有意思,这里主要说明 父窗口打开子窗口是的参数传递
写道
var $lastRow = $('#checklist tr:last');
var $checklistTable = null;
if($lastRow.size() == 0){
$checklistTable = $('#checklist');
$lastRow = null;
}
var parArray = new Array($lastRow,window,$checklistTable);
window.showModalDialog("/pm/customform/importItems/import_checklistframe.jsp?id="+$('#formId').val(),parArray,'modal:yes;dialogHeight:400px;dialogWidth:900px;status:no;scroll:yes;resizable:yes;');
var $checklistTable = null;
if($lastRow.size() == 0){
$checklistTable = $('#checklist');
$lastRow = null;
}
var parArray = new Array($lastRow,window,$checklistTable);
window.showModalDialog("/pm/customform/importItems/import_checklistframe.jsp?id="+$('#formId').val(),parArray,'modal:yes;dialogHeight:400px;dialogWidth:900px;status:no;scroll:yes;resizable:yes;');
showModalDialog的第二个参数 就是 父窗口向子窗口传递的内容,传递的参数 可以是一个数组,在这里我用数组传递了两个jquery对象,还有父窗口本身window。传递这个参数的目的是利用widow本身,直接调用父窗口中的js函数。
例如在子窗口中可以这些:
写道
var obj = window.dialogArguments;
var $obj = obj[0];
var openerWindow = obj[1];
var $checklistTable = obj[2];
......
openerWindow.refreshChecklistTable();
var $obj = obj[0];
var openerWindow = obj[1];
var $checklistTable = obj[2];
......
openerWindow.refreshChecklistTable();
蛮有意思。
在这里需要注意,因为showModalDialog 打开的是import_checklistframe,这是一个frameset框架的页面,因此首先要在frame中获取上面的参数,在frame的子页面中用 window.parent.openerWindow 来引用获取的参数。