自己做了一个框架页面,利用一个框架异步通讯的结果控制另外一个页面的刷新,利用了以下两种办法都不成功:
第一种:
window.parent.frames["mainFrame"].location.reload;
第二种:
window.parent.frames["mainFrame"].location="do_something.asp?xxxx="+Math.random();如果指定框架里面不是do_something.asp的话,显然不能用第一种办法,用第二种办法是百发百中,没有问题。
出现问题的原因在于,如果指定框架里面的本来就是do_something.asp(功能是按照服务器端session标志变换输出结果),问题就出现了。那个xxxx="+Math.random()随机数参数是为了防止直接读缓存、不能及时更新添加的,可是没有效果。请大家帮忙找个解决办法,先谢谢了
第一种:
window.parent.frames["mainFrame"].location.reload;
第二种:
window.parent.frames["mainFrame"].location="do_something.asp?xxxx="+Math.random();如果指定框架里面不是do_something.asp的话,显然不能用第一种办法,用第二种办法是百发百中,没有问题。
出现问题的原因在于,如果指定框架里面的本来就是do_something.asp(功能是按照服务器端session标志变换输出结果),问题就出现了。那个xxxx="+Math.random()随机数参数是为了防止直接读缓存、不能及时更新添加的,可是没有效果。请大家帮忙找个解决办法,先谢谢了
解决方案 »
- 请教高人 本人写了一个简单的循环语句为什么就不行呢
- 求助!只要打开/查看其他标签就会出错的JS!
- 有喜欢Prototype的朋友不?分享一个prototype写的俄罗斯方块
- 请问JS可以通过方法名和参数调用指定类型下的方法吗?(js的反射实现)
- javascript遍历textbox取背景色问题
- 数据批量更新和插入
- *******************请关于div排列的问题**************************
- ★如何获取JS代码的源内容?
- 怎么样改变Frame的大小?
- setInterval这种情况如何理解呢
- JS实现添加节点的BUG问题,请教高手来帮忙~~
- 获取控件在哪个控件内?
do_something.asp是动态赋值的吧?把那段代码贴出看看
具体代码是这样的:if session("yy")=1 then
输出内容1
else
输出内容2
end if已经证明异步通讯成功修改了session("yy")后,刷新这个页面,结果没有按要求刷新,但是,在这个框架内点击右键“刷新”,则按预定要求显示。
请帮忙解决!!!
if session("yy")=1 then
输出内容1
else
输出内容2
end if
是do_something.asp的内容:
do_something.asp:
<script>
function reloadme(){ location.reload();}
</script>
<%
if session("yy")=1 then
输出内容1
else
输出内容2
end if
%>在你写"window.parent.frames["mainFrame"].location="do_something.asp?xxxx="+Math.random();"的地方换成:
top.frames["mainFrame"].reloadme();
如果报错“缺少对象”之类的,你再顺着这个思路,一直找到代表do_something.asp这个页面对象为止
哦,是的,我忽视了。那么凡是需要刷新的页面你都就加上那个函数;如果只是do_something.asp需要刷新,那这样:
try{top.frames["mainFrame"].reloadme();}
catch(e){}
那就相当的多了,嘿嘿
<meta http-equiv="refresh" content="刷新页面的间隔时间" />
</head>这个应该是最简单的了
不知道你注意到没有,如果有人在这个页面进行长时间的停留输入,你重载页面,是不是要命?这其实就是一个需要花时间的调查页面
更新后的新的图片,能不能insert时候一样,不用手动刷新也能看得到结果?
那就给需要刷新的页面动态加上reloadme函数,然后再调用。这样就可以不必每个页面都手工修改了
1、只在do_something.asp页面加:
<script>
function reloadme(){ location.reload();}
</script>2、然后,在框架页处判断一下页面是否do_something.asp:
var url=top.frames["mainFrame"].location.href;
if(url.indexOf('do_something.asp')!=-1){
top.frames["mainFrame"].reloadme();
}
window.parent.frames["mainFrame"].location="do_something.asp?xxxx="+Math.random();
或:
window.parent.frames["mainFrame"].location="do_something.asp?xxxx="+new Date().getTime();
就应该没问题了。
如果真不行,那只好采取其他另类办法。如果觉得那些另类办法都不可取,我是不知道改怎么办了,呵呵。