如何在宏代码中打开一个自定义的对话框,请参考如下示例。
示例代码:
// 类型:ClientSide 对象:page 事件: onRenderPage function main(page, pageContext) { var dialogFactory = jsloader.resolve("freequery.dialog.dialogFactory"); var dialogConfig = { title: "test open report", size: dialogFactory.size.LARGE, dialogType: "modeless", fullName: "freequery.dialog.BaseDialogEx", closeBeforeCallback: true }; var data = {}; var win = dialogFactory.showDialog(dialogConfig, data, doOnCloseDlg, this); setTimeout(function() { openReport(win.document, win) }, 500); } function doOnCloseDlg(isOk) { //关闭对话框后的回调事件 //alert(isOk); } function openReport(doc, win) { var url = 'http://zhi:8080/smartbi/vision/openresource.jsp?resid=I2c94908d162343520116234cb928003d&refresh=true&user=admin&password=manager'; var domutils = jsloader.resolve('freequery.lang.domutils'); var elem = domutils.findElementByClassName(doc.body, 'containerdiv'); var btnOk = domutils.findElementByClassName(doc.body, 'button-bgicon-ok'); var btnCancel = domutils.findElementByClassName(doc.body, 'button-bgicon-close'); btnOk.style.display = 'none' btnCancel.value = '关闭(C)'; elem.innerHTML = '<iframe src="' + url + '" width="100%" height="100%" border="0" frameSpacing="0" frameBorder="0"></iframe>' }
示例效果: