问题下面的代码里的注释:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
/*
当Main.htm运行后,为什么它会间隔3秒就刷新一次?
其实,我的意图是:当Main.htm主框架集运行后,待3秒后就刷新一次,且就仅仅刷新一次。
并且我也使用了setTimeout这个函数(它仅执行一次的),为什么会不管用?是不是框架问题?
如何做到我的意图?
*/
setTimeout("window.location.href('Main.htm')", 3000);
});
</script>
</head>
<!--下面是HTML混合框架集,上下左右经典布局-->
<frameset rows="20%,*">
<frame name="top" src="Top.htm" />
<frameset cols="20%,*">
<frame name="Left" src="Left.htm"/>
<frame name="Right" src="Right.htm"/>
</frameset>
</frameset>
<noframset>
<body>
</body>
</noframset>
</html>
感谢帮助!
14 个解决方案
#1
setInterval是定时任务,setTimeout 是延时任务(只执行一次)
#2
window.onload=function(){
setTimeout("location.reload()", 3000);
}
#3
同样还是出现重复加载的问题,我只要实现框架加载完毕3秒后就加载一次,
且就仅仅一次!
#4
明白原因了!之所以会不停地加载,是因为每次加载都会触发它,所以造成一个假象。
现在的问题就是有没有办法令Main.htm加载完之后再重加载一次,且仅仅就一次就够了?谢谢
现在的问题就是有没有办法令Main.htm加载完之后再重加载一次,且仅仅就一次就够了?谢谢
#5
你这样写,整个页面都刷新了一次,页面自然会重新加载一次,然后又开始计数,再刷新再计数。。。你得做一个全局变量(比如COOKIE),记录是否执行过一次,如果执行过就放弃再执行
#6
用cookie记录,每次加载前先读取一下cookie再判断是否执行刷新事件
#7
var Cookie = {
set: function(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
},
get: function(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null){
return (arr[2]);
}else{
return "";
}
},
del: function(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval= this.get(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
}
window.onload=function(){
if(!Cookie.get('Visited')){
Cookie.set('Visited',true);
setTimeout("location.reload()", 3000);
}
}
#8
哥们,俺刚接触前端这块,不是很熟悉,能否详细点,俺刚放到Main.htm这里好像不行(同样会出现不停地刷新)。
#9
哥们,具体怎么用啊?
#10
用IE测试,webkit内核的浏览器本地测试是不能写入cookie的
#11
哥们啊, 俺的目的就是为了在非IE内核才做这种无聊的工作啊。不然谁闲得蛋疼去搞这种无聊的刷新。
#12
这需求最好用XMLHTTPrequest来实现好些
#13
哥们啊, 俺的目的就是为了在非IE内核才做这种无聊的工作啊。不然谁闲得蛋疼去搞这种无聊的刷新。
本地调试的时候是不能写入的,上传到服务器就可以了..
#14
问题我自己解决了,我使用了Session来记住它的刷新状态。感谢你的提醒。
#1
setInterval是定时任务,setTimeout 是延时任务(只执行一次)
#2
window.onload=function(){
setTimeout("location.reload()", 3000);
}
#3
同样还是出现重复加载的问题,我只要实现框架加载完毕3秒后就加载一次,
且就仅仅一次!
#4
明白原因了!之所以会不停地加载,是因为每次加载都会触发它,所以造成一个假象。
现在的问题就是有没有办法令Main.htm加载完之后再重加载一次,且仅仅就一次就够了?谢谢
现在的问题就是有没有办法令Main.htm加载完之后再重加载一次,且仅仅就一次就够了?谢谢
#5
你这样写,整个页面都刷新了一次,页面自然会重新加载一次,然后又开始计数,再刷新再计数。。。你得做一个全局变量(比如COOKIE),记录是否执行过一次,如果执行过就放弃再执行
#6
同样还是出现重复加载的问题,我只要实现框架加载完毕3秒后就加载一次, 且就仅仅一次!
用cookie记录,每次加载前先读取一下cookie再判断是否执行刷新事件
#7
var Cookie = {
set: function(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
},
get: function(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null){
return (arr[2]);
}else{
return "";
}
},
del: function(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval= this.get(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
}
window.onload=function(){
if(!Cookie.get('Visited')){
Cookie.set('Visited',true);
setTimeout("location.reload()", 3000);
}
}
#8
var Cookie = {
set: function(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
},
get: function(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null){
return (arr[2]);
}else{
return "";
}
},
del: function(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval= this.get(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
}
window.onload=function(){
if(!Cookie.get('Visited')){
Cookie.set('Visited',true);
setTimeout("location.reload()", 3000);
}
}
哥们,俺刚接触前端这块,不是很熟悉,能否详细点,俺刚放到Main.htm这里好像不行(同样会出现不停地刷新)。
#9
哥们,具体怎么用啊?
#10
var Cookie = {
set: function(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
},
get: function(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null){
return (arr[2]);
}else{
return "";
}
},
del: function(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval= this.get(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
}
window.onload=function(){
if(!Cookie.get('Visited')){
Cookie.set('Visited',true);
setTimeout("location.reload()", 3000);
}
}
哥们,俺刚接触前端这块,不是很熟悉,能否详细点,俺刚放到Main.htm这里好像不行(同样会出现不停地刷新)。
用IE测试,webkit内核的浏览器本地测试是不能写入cookie的
#11
哥们啊, 俺的目的就是为了在非IE内核才做这种无聊的工作啊。不然谁闲得蛋疼去搞这种无聊的刷新。
#12
这需求最好用XMLHTTPrequest来实现好些
#13
哥们啊, 俺的目的就是为了在非IE内核才做这种无聊的工作啊。不然谁闲得蛋疼去搞这种无聊的刷新。
本地调试的时候是不能写入的,上传到服务器就可以了..
#14
问题我自己解决了,我使用了Session来记住它的刷新状态。感谢你的提醒。