我们在使用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);
}
}
});
这两个解决方案看起来都是正确的,但它们无法正常工作。 任何帮助是极大的赞赏。
提前致谢。
答案 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。
您还应该记住推荐人不可靠。某些浏览器或防火墙阻止它,它可以伪造。