以下に示したコードは、ユーザーが特定のページにいない場合、または特定の Cookie を持っていない場合に、新しい URL にリダイレクトするためのものです。Cookie 機能は、リダイレクトと同様に完全に機能します。ここに私の問題があります: ウィンドウの URL はリダイレクトされますが、元の URL はブラウザーの履歴に記録されません。
<script type="text/javascript">
$(document).ready(function() {
if (getCookie('legal_age') == "yes" || window.location =="http://example.com/home") {//user is legal age!
} else {
setTimeout(function() {
window.open('http://example.com/welcome','_self','', false);
},0)
}
});
</script>
たとえば、「http://example.com/page1 」にアクセスすると、ブラウザは「 http://example.com/welcome 」にリダイレクトされます。ただし、別の関数で呼び出すことができるように、ブラウザーの履歴に表示される元の URL (" http://example.com/page1 ") が必要です。(フォーム内で)履歴を呼び出すために使用しているコードは次のとおりです。
<form action="javascript:window.location.reload(history.go(-1));" method="get" name="age_form" id="ageForm" />
履歴を呼び出すためにこの代替手段も試しましたが、役に立ちませんでした:
window.history.back();
次のことも試しましたが、ブラウザの履歴に元の URL を保存することに成功しませんでした:
window.location = "http://example.com/welcome";
window.location.href = "http://example.com/welcome";
window.location.assign("http://example.com/welcome");
最後に、別のスレッドが役立つ可能性があると示唆したため、この関数を含めましたが、あまり効果がないようです。
setTimeout(function(){
何か案は?リダイレクトする前に、ブラウザの履歴にログインするためにアクセスした元の URL を取得する方法はありますか? 助けてください!