我需要在页面上使用JS来检查引荐来源 - 前一页是否来自同一个域。
带有JS的页面的URL格式如下:
http://subdomain.site.com/dir/page?vs=123456
可能有多个以前的页面。因此,JS需要检查域是否匹配。
如果域名不同,我想将用户发送到另一个页面。
这是我试图开始工作的:
var matchHost = /^https?:\/\/.*\//;
var match = matchHost.exec(document.referrer);
var domain = "http://subdomain.site.com/dir/";
if (match !== domain) {
window.location.href = domain;
}
但是效果不好。
有什么想法吗?
答案 0 :(得分:1)
您可能根本不需要正则表达式。你知道你的域名的字符长度,例如url http://example.com计算字符数,然后根据引用的url域长度拆分字符串,然后用你的域名网址进行cmop!那就是全部。
答案 1 :(得分:1)
在您的情况下,match
是匹配字符串的数组。所以永远不会平等。您需要比较match[0]
:
if (match.length== 0 || match[0]!== domain) ...
或者你可以通过这样做来避免正则表达式:
if (document.referrer.substr (0, domain.length).toLowerCase()!== domain) ...