我正在处理每5分钟刷新一次的页面
<meta http-equiv="refresh" content="1200;url=?meta_refresh=true" />
页面上是一个JS脚本,应该在页面重新加载的前两次运行。当页面第三次重新加载时,脚本不应该执行。
到目前为止,我已经创建了一个cookie并给它一个初始值为0,每次刷新我都会增加它的值(重写cookie),如果值小于3,我执行脚本的一部分。问题是如果我关闭选项卡并在另一个选项卡中重新打开页面,cookie会增加值,我希望它始终从0开始。
这是我到目前为止所做的事情:
var value = 0;
$(document).ready(function() {
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return "";
}
function checkCookie() {
var cookieValue = getCookie('siteRefreshCookie');
if (cookieValue !== '') {
var newValue = parseInt(getCookie('siteRefreshCookie')) + 1;
if (newValue < 3) {
//script to be executed
document.cookie = "siteRefreshCookie="+ newValue +";";
}
} else {
document.cookie = "siteRefreshCookie="+ value +";";
}
}
checkCookie();
})
&#13;
答案 0 :(得分:0)
我可以建议使用查询字符串吗?
<meta http-equiv="refresh" content="1200;url=?meta_refresh=true&count=1" />
然后作为ASP程序员,我会做类似的事情:
<meta http-equiv="refresh" content="1200;url=?meta_refresh=true&count=<%=CInt(0 & Request.Querystring("count")) + 1%>" />
但你可以使用PHP实现这一点,甚至可以用JS来设想你是否有适合的后端语言。
使用Cookie的问题在于它们与该网站相关联,而不是与该窗口相关联。即使您使用像Pete建议的卸载功能重置cookie,您也会遇到问题,例如,如果您有两个标签打开同一页面。