我试图做下一件事:
if (document.referrer=="http://host.com/folder1/*.html"){
alert('True');
}
所以我想要做的是在脚本检测到我们在文件夹1上时显示警告,无论存档。 *(星号)是执行它而不管它有什么名称。但我真的不知道该怎么做,显然上面的例子不起作用。
有什么想法吗?
答案 0 :(得分:2)
基本上,您正在尝试测试变量document.referrer
是否以http://host.com/folder1
开头,因此您可以使用以下内容:
if (document.referrer.indexOf('http://host.com/folder1')==0){
alert('True');
}
答案 1 :(得分:1)
试试这个:
if (document.referrer.match("http://host.com/folder1/[^/]+\.html"))
请点击此处了解更多信息:
这是一个你可以玩的jsFiddle:
代码是:
var ref = "http://host.com/folder1/abc.html";
var ref1 = "http://host.com/folder1/abc.xml";
var ref2 = "http://host.com/folder1/qq/abc.html";
if (ref.match("http://host.com/folder1/[^/]+\.html")) {
$('#msgs').text('matches!');
} else {
$('#msgs').text('doesn\'t match...');
}
如果您在ref
中使用if(...)
,它将匹配,但ref1
和ref2
将不匹配。
答案 2 :(得分:1)
您可以使用test()
功能和regular expression:
if (/http:\/\/host\.com\/folder1\/.*\.html/.test(document.referrer)){
alert('True');
}
或indexOf()
功能:
if (document.referrer.indexOf("http://host.com/folder1/") == 0)
alert('True');
}
请注意,第二种方法不会检查.html
扩展名。
答案 3 :(得分:0)
也许添加这个:
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (str){
return this.indexOf(str) == 0;
};
}
然后你可以这样做:
if (document.referrer.startsWith("http://host.com/folder1/")){
alert('True');
}