ページの読み込み時にページを 1 回リロードするにはどうすればよいですか ( を押すのと同じですF5)
$( window ).load(function() {
window.location.reload(true);
});
これ自体がループします。どうすればそれを一度だけ発生させることができますか?
ページの読み込み時にページを 1 回リロードするにはどうすればよいですか ( を押すのと同じですF5)
$( window ).load(function() {
window.location.reload(true);
});
これ自体がループします。どうすればそれを一度だけ発生させることができますか?
最近... HTML5はlocalStorageを提供します:
/* if my "reload" var isn't set locally.. getItem will be false */
if (!localStorage.getItem("reload")) {
/* set reload to true and then reload the page */
localStorage.setItem("reload", "true");
location.reload();
}
/* after reloading remove "reload" from localStorage */
else {
localStorage.removeItem("reload");
// localStorage.clear(); // or clear it, instead
}
これにはjqueryは必要ありません。それが私を助けたので、それが役立つことを願っています。
これはそれを行います:
if (window.location.href.indexOf('reload')==-1) {
window.location.replace(window.location.href+'?reload');
}
あなたのjQueryコードで:
$( window ).load(function() {
if (window.location.href.indexOf('reload')==-1) {
window.location.replace(window.location.href+'?reload');
}
});
<script type="text/javascript">
$(document).ready(function(){
//Check if the current URL contains '#'
if(document.URL.indexOf("#")==-1)
{
// Set the URL to whatever it was plus "#".
url = document.URL+"#";
location = "#";
//Reload the page
location.reload(true);
}
});
</script>
if条件により、ページは1回だけリロードされます。私もこの問題に直面し、検索すると良い解決策が見つかりました。これはうまくいきます。そして、http://www.webdeveloper.com/forum/showthread.php?267853-Auto-refresh-page-once-only-after-first-loadに感謝します
以下の行を HTML ファイルに追加します。
`<input name="refreshed" value="no" id="refreshed" />`<input name="refreshed" value="no" id="refreshed" />
そして、ページのオンロード時にこの関数を呼び出し、
<script type="text/javascript">
onload = function() {
if ($("#refreshed").val() == "no") {
location.reload();
$("#refreshed").val("yes");
}
}
</script>
echo ("<script type='text/javascript'>location.replace('http://url.goes.here');</script>");
一度繰り返す
もっと簡単な方法があります(私の場合はうまくいきました)
jQuery を使用している場合は、JS でグローバル変数を設定します。
<script type="text/javascript">
var only_once = "0";
</script>
次に、この JS コードを jQuery ページ (内部<div data-role="page" id="myPage">
)で使用します。
<script>
$('#myPage').bind('pageshow', function() {
if (only_once==1) {
only_once = 0 ;
location.reload();
}
});
</script>
github静的ページで同様の問題を解決したようです。キャッシュによってリンクが壊れていたため、ページを強制的にリロードする (つまり、キャッシュしない) 必要がありました。
それに関する問題は、github がこれらの設定をオーバーライドするため、meta http-equiv または htaccess を使用してキャッシュを変更できなかったことです。
「一度だけリロードする」ソリューションはどれも、戻るボタンで機能しません。
以下は、すべてのブラウザで機能するようです。
<body onbeforeunload="return window.location.reload(true)">
これにより、ユーザーがページを離れるたびにサーバーから直接再読み込みが強制されます (キャッシュなしと同じ効果)。恐ろしいループは回避されます。
その間、私はそれをこのように機能させてくれてありがとう
function SetCookie (name, value) {
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=name+"="+escape(value)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}
function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
{
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1)
{
c_value = null;
}
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
{
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
if (getCookie('first_load'))
{
if (getCookie('first_load')==true)
{
window.location.reload(true); // force refresh page-liste
SetCookie("first_load",false);
}
}
SetCookie("first_load",true);