系统首页底部有个Ext TabPanel,默认是收缩的,该TabPanel包含两个tab,并且activeTab:0,现在我打开系统首页,点击某个菜单“显示Map2”,要求最大化第二个tab,并获取该tab中的html页面(页面嵌套一个Flash对象)中的Flash Object,但是因为activeTab默认是0,所以在获取第二个tab中的对象报脚本错误。
以下是Tab Panel部分代码:
[code="java"]
titlebar: true,
height: 300,
margins:'0 0 0 0',
items:
new Ext.TabPanel({
id: 'flashId',
border:false,
activeTab:0,
tabPosition:'bottom',
items:[{
id:'web_map_tab1',
html:'/flash/map2.html?token=${userContext.sessionId}" id="__webMap2__" name="__webMap2__" frameBorder="0" scrolling="auto" top="0" width="100%" height="100%">',
title: 'Map2',
autoScroll:true
}]
}),
.....
[/code]
其中map2.html中的内容为:
[code="java"]
name="mapObj2" id="mapObj2"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
width="690" height="510">
pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Pr od_Version=ShockwaveFlash'
type='application/x-shockwave-flash' width=690 height=510>
[/code]
点击“显示Map2”的JS方法:
[code="java"]
function showMap2(){//打开第二个TAB页面并获取Flash对象
window.top.maximizeFlash();//最大化MAP2
var webFrame = window.top.document.getElementById("__webMap2__");
var flashObj = webFrame.contentWindow.document.getElementById("mapObj2");//mapObj2为第二个Tab指向页面的object id
//******************************
//这里取不到flashObj,报脚本错误,当把activeTab改成1的时候,就可以得到
//但是需求是默认activeTab只能是0
//******************************
}
/**
- 最大化MAP2区域,并显示Map2中的FLASH
*/
function maximizeFlash(){
Ext.getCmp('webGisId').expand(true); Ext.getCmp('webGisId').tools['maximize'].dom.click(); Ext.getCmp('flashId').setActiveTab(1); //这里修改也无效 } [/code]
因为对EXT不太熟,希望熟悉的人可以指点一下,谢谢!