1

如果用户不在特定页面上或没有特定 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(){

有任何想法吗?无论如何在重定向之前获取访问的原始网址以登录我的浏览器的历史记录?请帮忙!

4

1 回答 1

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>

希望这对某人有帮助!

于 2012-07-24T07:39:10.513 回答