- 締切済み
jqueryでアクセス時一度だけリロード
Firefoxで別ページからアクセスした際にウインドウの位置がずれないようにする対策で、 アクセス時に一度だけリロードするようプログラムしました。 if($.cookie("access") == undefined) { alert("1"); $.cookie("access","true"); setTimeout(function(){ var url = location.href; location.href = url; },300); } else { alert("2"); $.removeCookie("access"); } jquery.cookieを使って上記のように実装したのですが、 location.hrefした後にalert("2")に入らない状態です。 現状ですと、2回URLを手動で叩かないと、alert("2")に入らない状態で、 一度のアクセスでalert("2")に入りつつ、2回目のアクセスでcookieを削除できればと思います。 cookieを使わない方法でももちろん大丈夫なのですが、 対策方法がお分かりいただけましたらご教授のほどよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- pringlez
- ベストアンサー率36% (598/1630)
単純に、上記JavaScriptを動く状態にしてサーバー上にアップして動かすと、1→2となりましたよ。FireFoxでもChromeでも。ご提示のコードと別のところに問題があるのかもしれません。 あまり関係ありませんが var url = location.href; location.href = url; のところは location.reload(); の方がいいと思います。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> </head> <body> <script> if ($.cookie("access") == undefined) { alert("1"); $.cookie("access", "true"); setTimeout(function() { var url = location.href; location.href = url; }, 300); } else { alert("2"); $.removeCookie("access"); } </script> </body> </html>