注:测试浏览器IE8,
父页面:
function _relationUnitProject() { returnValue = null; win = Ext.create('Ext.window.Window', { title : '<spring:message code="relation" /><spring:message code="budget" />', modal : true, autoShow : true, maximized : false, maximizable : true, width : 800, height : 600,
//向子页面发送跨域请求 html : '<iframe src="https://10.18.26.36:8443/CO/relationUnitProject.do?MONTH_PLAN_ID_=' + monthPlan.MONTH_PLAN_ID_ + '&EMP_CODE_=' + Ext.util.Cookies.get('EMP_CODE_') + '" style=" 100%; height: 100%;" frameborder="0"></iframe>', listeners : { close : function(panel, eOpts) { alert('close');
//关闭后事件解绑,IE8还在测试中,目前没什么反应,后续改正代码 window.detachEvent('onmessage', function(e) { //移除监听 alert("detachEvent"); }, false); } } }); window.attachEvent('onmessage', function(e) { //现在开始监听 接收信息 alert("onmessage"); var data = e.data; //这里你可以在控制台打印一下 console.log(e) 看里面的内容 alert(data); if (data && data.type && data.type == 'onload') { // 这里我们加一些判断 万一要是没传过来呢 } }, false); }
子页面(relationUnitProject):
function _sumUnitProject() {//合计工程总造价 var unitProjectStore = Ext.data.StoreManager.lookup('unitProjectStore'); var SUM_ = 0; unitProjectStore.each(function(record) { SUM_ += record.get('SUM_') }); window.parent.postMessage(SUM_,'*');//此处向父页面发送消息的内容,也可以是json串 //window.parent.returnValue = SUM_; }