可以的,但是必须通过记录刷新次数,现在可以用的有两个方法(这里的刷新不能通过meta标签方式,只能通过设置js的window.location.href来转向)
方法就是参数法和cookie法,程序都经自己测试没有问题,没有加注释,如果有不懂的地方可以追问.
逻辑部分全部封装到了 refresh函数里,可以直接调用,参数param就是记录刷新次数的参数名,用于url和cookie,根据情况可以自定义,refreshNum是刷新次数.
1,url参数法,通过该参数记录当前次数,判断如果小于3,继续刷新,如果>=3.停止.
<script type="text/javascript">
function refresh(param,refreshNum){
var url=window.location.search;
var str=window.location.href;
if(url.length>0){
urls=url.replace("?","").split("&");
for(i=0;i<urls.length;i++){
if(urls[i].split("=")[0]==param){
if(parseInt(urls[i].split("=")[1])<refreshNum){
urls[i]=param+"="+(parseInt(urls[i].split("=")[1])+1);
window.location.href=str.split("?")[0]+"?"+urls.join("&");
}
else{
break;
}
}
}
}
else{
if(str.indexOf("?")!=-1){
str=str.replace("?","");
}
window.location.href=str+"?"+param+"=1";
}
}
refresh('a',3);
</script>
2,记录cookie法,通过cookie保存页面的刷新次数,判断方式同1.测试该方法时请清空浏览器cookie缓存,否则可能有一定影响.
<script type="text/javascript">
function refresh(param,refreshNum){
if(document.cookie.length>0){
cookies=document.cookie.split(';');
for(i=0;i<cookies.length;i++){
if(cookies[i].split('=')[0]==param){
if(parseInt(cookies[i].split('=')[1])<refreshNum){
cookies[i]=param+"="+(parseInt(cookies[i].split('=')[1])+1);
document.cookie=cookies.join(';');
window.location.href=window.location.href;
}
else{
break;
}
}
}
}
else{
document.cookie=param+"=1";
window.location.href=window.location.href;
}
}
refresh('a',3);
</script>
温馨提示:答案为网友推荐,仅供参考