我的目标是 - 每次点击重新加载按钮时重新加载页面 (使用javascript函数:window.location.reload();)并跟踪单击按钮(重新测试)的次数。该页面应仅在前三次点击时重新加载。如果单击按钮的次数超过三次,则应该导致不同的页面
代码:
<div class = "text-center"> <button type="button" class="btn btn-success
btn-block" onclick ="myCheck();">Retake Test</button>
这是我遇到的解决方案(显然不起作用)
<script>
var count = 0;
function myCheck () {
count = count+1;
if (count < 3) {
window.location.reload();
}
else {
document.write ("YYY");
}
}
</script>
答案 0 :(得分:1)
您可以尝试localStorage。
<script>
localStorage.setItem('count', '0');
function myCheck () {
localStorage.setItem('count', +(localStorage.getItem('count'))+ 1)
if (+(localStorage.getItem('count')) < 3) {
window.location.reload();
}
else {
document.write ("YYY");
}
}
</script>
这是一次匆忙的尝试,你可以让你的代码更简洁!
其他注意:同时避免使用内联javascript,例如onclick ="myCheck();"
请改用addEventListener
。
答案 1 :(得分:0)
由于您的变量通过重新加载页面而重置,您可能希望将count
保存在其他位置。 Cookie是一个有用的选项,在现代浏览器中也可以使用local storage。
然而,您正在寻找的解决方案是通过AJAX重新加载您网页的一部分?
答案 2 :(得分:0)
您的计数在页面重新加载时丢失了。使用localstorage或cookies
"use strict";
function myCheck() {
var count = localStorage.getItem('count') || 0;
if (count < 3) {
localStorage.setItem('count', (count += 1) )
return window.location.reload();
}
// more than or equal to 3 times
document.write("YYY");
}
答案 3 :(得分:0)
使用localStorage.setItem和localStorage.getItem
<script>
var count=typeof localastrorage.getItem('count')!="null"? localstorage.getItem('count'):0;
function myCheck () {
localStorage.setItem("count",count);
count = count+1;
if (count < 3) {
window.location.reload();
}
else {
document.write ("YYY");
}
}
</script>