我搜索过高和低,无法找到任何关于如何在最初加载/查看后自动刷新页面ONLY ONCE
的脚本或说明。
我实现了一个javascript代码,声明:如果页面已完全加载,请立即刷新页面,但只刷新一次。
window.onload = function () {window.location.reload()}
但这会给出一个没有“只有一次”的循环。
我也实现了meta refresh
,但它也提供了一个循环。
<meta http-equiv="refresh" content= "0;URL=http://www.example.com" />
请告诉我如何首次使用正文onload
刷新功能only once
,而不是每次刷新php页面时。
我表达你的直接反应。感谢
答案 0 :(得分:13)
您应该在Cookie,服务器会话或本地存储中保留一个标志。例如:
window.onload = function () {
if (! localStorage.justOnce) {
localStorage.setItem("justOnce", "true");
window.location.reload();
}
}
答案 1 :(得分:0)
我不知道你为什么要那样做。但你可以一起使用php,javascript / jquery来解决这个问题:
<?php
if ($_GET["reloaded"] != 1) {
echo '
<script>
$(function () {
window.location.href = "my_page.php?reloaded=1";
});
</script>
';
}
?>
说明:当您第一次加载页面时$_GET["reloaded"]
未设置,因此回显了javascript。我在这里使用了jquery的文档就绪函数,以确保在重新加载页面之前你的DOM已经完全加载。重新加载时,将GET变量reloaded
设置为1
因此php不会在重新加载时再次回显javascript代码。
答案 2 :(得分:0)
您要做的是设置一个cookie,以检查用户是否已刷新。以下基本上是伪代码,你应该怎么做。
的Javascript
if(!COOKIE_EXISTS){
SET_COOKIE();
REDIRECT_TO_DESIRED_PAGE;
}
腓
if(!isset($_COOKIE['page_was_refreshed'])){
setcookie("CookieName", "CookieValue", time() + (10 * 365 * 24 * 60 * 60));
die(header("Location: your/url/to/redirect"));
}