请问如何实现点击按钮刷新已打开页面的功能

用ExtJs实现如下:

A.jsp中点击“显示”按钮弹出B.jsp窗口,若在没有关闭B页面前提下再次点击A的“显示”按钮实现B页面整个刷新并自动切换到B页面

如何实现??

我写的代码

[code="java"]
var tabPanel = window.parent.tabs;
var lp = tabPanel.getComponent(id);

if(!np){
tabPanel.add({
id: id,
title: name,
html: '',
closable: true
}).show();
}
else{
var frmid = tabPanel.items.indexOf(np);

tabPanel.frames[frmid].location.reload();
np.show();

}
[/code]

在第二次点击时总是提示“frames为空或不为对象”,可是这个页面明明已经有了啊?为什么?请指教
[b]问题补充:[/b]
np就是lp手误了
其次我取得是下标 用下标也能定位的吧 不一定要id的
[b]问题补充:[/b]
而且用id我也试过了 还是同样的错误
[b]问题补充:[/b]
这些代码是写在a.jsp中的 要弹出的就是iframe中的b.jsp页面 a页面最外层还有个frame

用Ext.get方法也取不到这个iframe啊 我做tabPanel.frames[frmid]其实就是为了获取这个内嵌的iframe,但是代码跑到frames这边就报错了,请问除了我写的这种方法 还能用什么方法获取这个iframe?加id或name我都试过了 还是同样错

还有,我并没有点击关闭按钮,close应该还没调到吧
[b]问题补充:[/b]
代码太多我不可能全部贴出来的 其实我就是想知道如何获取一个tabPanel里面的iframe整个页面啊。取到了这个页面我才能去做刷新
[b]问题补充:[/b]
对了 说错了一点 tabPanel部分我是单独写在c.jsp中的,这个a.jsp也是c生成的一个iframe中,a和b其实是同级的,应该说c每次生成一个新的iframe。现在a想通过操作父页面c来增加一个兄弟页面b就是这样

7个回答

我知道了..
tabPanel.frames[frmid]
这肯定不对啦

1.tabpanel是一个ext的组件,他没有什么frames的属性
2.你是iframe,也不该是用frames[]的方法来取

试着windowB.document.getElementById('myIfrId').src="http://www.g.cn"
之类的方法找下.

或者你给出a和b的一些关键代码,不然我们是没办法本地测试

var frmid = tabPanel.items.indexOf(np);
frmid是np所在tabPanel中的下标,是个数字。
tabPanel.items是个Ext.util.MixedCollection对象,indexOf返回的事下标,不是key。
不知道是不是你这里弄错了。

估计是close的时候被销毁了.

你的a.jsp和b.jsp是怎么样的,是在2个iframe里面么?同级的?
你给出的代码又是哪个jsp里面的?

var frmid = tabPanel.items.indexOf(np);

这个np是什么东西?就是上面的lp?

你这里有几个问题:

1.var lp = tabPanel.getComponent(id);
换成lp.getItem( String id ) : Panel

2.var frmid = tabPanel.items.indexOf(np);

indexOf这个方法是不存在的,
tabPanel.items是一个Ext.util.MixedCollection,有get(key)和itemAt(index)方法
你的np到底是什么? 你的frmid又是啥?

Ext.util.MixedCollection中是存在indexOf方法的。
参数是Object,返回其在集合中的下标。

你先给iframe一个id,
然后var frmid = tabPanel.items.indexOf(np);
tabPanel.frames[frmid].location.reload();

先用Ext.get来看看这个iframe还在不在.

就可以定位出是因为close把这个iframe给销毁了,还是你的tabPanel.items.indexOf(np);查找方式不对.

tabPanel.frames[frmid].location.reload();

这个reload之后,再调用np.show(); 自然就出问题了,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问