Bryan_Chan 2011-01-05 10:33
浏览 225
已采纳

如何获取Ext中没有active的tab页里的对象

系统首页底部有个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不太熟,希望熟悉的人可以指点一下,谢谢!

  • 写回答

2条回答 默认 最新

  • iteye_5075 2011-01-05 11:29
    关注

    上面的回答有误,你加个deferredRender:false应该就可以了

    [code="java"]

    new Ext.TabPanel({
    deferredRender:false

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码