URL重定向,但无法将其保存在浏览器历史记录中。

时间:2012-07-24 01:19:38

标签: javascript jquery browser-history window.location

如果用户不在特定网页上或没有某个Cookie,我在下面包含的代码意味着重定向到新网址。 cookie功能与重定向功能完美配合。这是我的问题:窗口网址重定向,但原始网址未记录在我的浏览器历史记录中。

<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”。但是,我需要访问的原始网址(“http://example.com/page1”)显示在我的浏览器历史记录中,以便我可以在其他功能中调用它。这是我用来调用历史记录的代码(在表单中):

<form action="javascript:window.location.reload(history.go(-1));" method="get" name="age_form" id="ageForm" />

我也试过这个替代方案来调用历史记录而且它没有帮助:

window.history.back();

我还尝试了以下操作,但未能成功保存浏览器历史记录中的原始网址:

window.location = "http://example.com/welcome";
window.location.href = "http://example.com/welcome";
window.location.assign("http://example.com/welcome");

最后,我包含了这个函数,因为另一个线程暗示它可能有所帮助,但它似乎没有做太多:

setTimeout(function(){

有什么想法吗? 在重定向之前,是否有访问原始网址以登录浏览器的历史记录?请帮助!

1 个答案:

答案 0 :(得分:0)

在重定向之前设置当前URL的cookie效果很好。这是改变了的代码。请记住,为了设置cookie,你必须引用一个javascript cookie函数(在本例中我的名字叫做setCookie():

<script type="text/javascript">
    $(document).ready(function(){
       if (getCookie('legal_age') == "yes" || window.location =="http://example.com/home") {//user is legal age!
       } else {
           setCookie('originalURL', window.location);
           var urlCheck = getCookie('originalURL');
           window.open('http://example.com/welcome','_self','', false);
       }
    });
</script>

希望这有助于某人!