Javascript如果document.referer重定向到另一个URL

Javascript如果document.referer重定向到另一个URL,javascript,Javascript,获取Javascript中的document.referer url时遇到问题。我们有一个商店,我们希望防止人们从我们的购物车进入特定页面。也就是说,如果他们从购物车出发,点击浏览器上的后退按钮,在购物车成为特定URL之前的页面,他们需要跳过该URL,我们需要重定向到另一个页面。 如果引用的URL是购物车,我们希望为要跳过的产品/页面指定URL 我试过这样做,但似乎不起作用。似乎在每一页上都能看到,不仅仅是。我把它放在Root.master页面的头部。这是我的密码 $(document).r

获取Javascript中的document.referer url时遇到问题。我们有一个商店,我们希望防止人们从我们的购物车进入特定页面。也就是说,如果他们从购物车出发,点击浏览器上的后退按钮,在购物车成为特定URL之前的页面,他们需要跳过该URL,我们需要重定向到另一个页面。 如果引用的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'
     }
   }
}))

或者我们想向后跳两页。所以我们也尝试了这个方法,但它仍然会在每个页面上触发,而不仅仅是我们想要阻止后退按钮动作的页面

$(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);
         }
       }
  });
同样,这两种解决方案看起来都是正确的,但都不起作用。 非常感谢您的帮助


提前感谢。

您使用的是赋值而不是相等


在测试中将=更改为==此外,window.location.pathname不包括域。因此,它应该是:

if (pathname == "/Page-we-want-to-skip-over.aspx")
请参见
窗口上的位置


你还应该记住,推荐人是不可靠的。某些浏览器或防火墙会阻止它,并且它可能被伪造。

使用“后退”按钮不会以您想要的方式更改引用。e、 g.页面顺序如下:

A -> B -> C (backbutton) -> B

当用户“返回”到B页时,不会将“C”作为参考页发送。参考页将是A页。参考页仅设置为“向前”操作,而不是“向后”操作。

这看起来像是试图隐藏错误的设计。此外,对于关闭了JS的用户或某些类型浏览器中的用户,JS不会解决您的问题?在if(pathname==…)或document.referer或两者之后,在这两个if()块中,您不需要使用single=什么可以替代referer?您可以使用会话(在web服务器上)来跟踪用户的页面访问。如果按下后退按钮,是否有其他方法来获取页面C和旁路B?不太可能。您必须引入使用“location.replace”的纯javascript导航,这与许多在线银行网站一样,有效地禁用了后退按钮。浏览器中的历史记录对象被严重锁定,不允许一个页面查看另一个页面生成的历史记录,即使这两个页面都是您的并且来自同一服务器。谢谢您提供的信息。这对我们的问题真的很有帮助。有点糟糕,但如果是这样的话。我们无能为力。