如果document.referrer重定向到另一个URL,则为Javascript

时间:2011-09-21 16:33:26

标签: javascript

我们在使用Javascript获取document.referrer网址时遇到问题。我们有一家商店,我们希望阻止人们从我们的购物车转到特定页面。这意味着如果他们离开购物车,点击浏览器上的后退按钮,并且在购物车之前的页面是他们需要跳过该URL的特定URL,我们需要重定向到另一个页面。 如果引用网址是购物车,我们要指定要跳过的产品/页面的网址。

我试过这样做但似乎没有用。似乎每个页面都不会发射。我把它放在Root.master页面的头部。这是我的代码。

  $(document).ready(function () {

  var pathname = window.location.pathname;
   if (pathname = "http://www.mywebstore.com/Page-we-want-to-skip-over.aspx") {
    if (document.referrer = "http://www.mywebstore.com/ShoppingCart.aspx") {
         window.location = 'http://www.mywebstore.com/Page-we-want-to-go-to-instead.aspx'
     }
   }

});

或者我们想跳过2页。所以我们也试过这个,但它仍然会在每一页上触发,不仅仅是我们想要阻止后退按钮动作的页面。

$(document).ready(function () {

      var pathname = window.location.pathname;
       if (pathname = "http://www.mywebstore.com/Page-we-want-to-skip-over.aspx") {
        if (document.referrer = "http://www.mywebstore.com/ShoppingCart.aspx") {
             window.history.back(-2);
         }
       }
  });

这两个解决方案看起来都是正确的,但它们无法正常工作。 任何帮助是极大的赞赏。

提前致谢。

3 个答案:

答案 0 :(得分:3)

您正在使用赋值而不是相等

在测试中将=更改为==。

答案 1 :(得分:2)

使用后退按钮不会以您希望的方式更改引用。例如页面序列如:

A -> B -> C (backbutton) -> B
当用户“返回”到页面B时,

不会发送“C”作为引用者。引用者将是页面A.引用者仅设置为“前进”操作,而不是“后退”操作。

答案 2 :(得分:0)

此外,window.location.pathname不包含域。所以它应该是:

if (pathname == "/Page-we-want-to-skip-over.aspx")

请参阅window.location上的MDC documentation

您还应该记住推荐人不可靠。某些浏览器或防火墙阻止它,它可以伪造。