我正在使用jquery,我需要检查URL以查看用户是否正在查看已标记/已分类的内容。
我需要检查网址才能这样做。之前,我正在做这样的事情来检查用户所在的页面......
var loc = window.location;
var pageOne = 'http://design.optimus.com/projects';
if(loc == pageOne) {
//do stuff
}
但是这些网址从未改变过,所以我很容易检查它们是否在一个网址上。
但是,根据用户搜索的标记,新网址将具有不同的结尾。例如,
http://optidesign.squarespace.com/projects/tag/design
http://optidesign.squarespace.com/projects/tag/production
http://optidesign.squarespace.com/projects/tag/animation
所以我想使用与第一部分相同的方法,但我只想检查URL的开头:
http://optidesign.squarespace.com/projects/tag/
我该怎么做?
答案 0 :(得分:4)
indexOf
方法可用于此目的:
if (location.href.indexOf('http://optidesign.squarespace.com/projects/tag/') === 0) {
// Well...
}
我可以想象你在localhost
上或在不同的协议上测试页面。以下解决方案可能更有用:
if (location.pathname.indexOf('/projects/tag/') === 0) {
// Well...
}
答案 1 :(得分:1)
如果您有权访问页面内容,您只需添加一个变量即可传递到您的脚本中,说明您所在的页面。
假设网址是您必须关闭的唯一数据,您可以使用indexOf
查看该网址的部分是否存在。
var loc = window.location.toString();
var pageOne = 'http://design.optimus.com/projects/tag/';
if(loc.indexOf(pageOne) >= 0) {
//do stuff
}
为了在以后更改域名或切换到HTTPS时能够面向未来,您可以选择使用以下内容:
var loc = window.location.pathname;
var pageOne = '/projects/tag/';
if(loc.indexOf(pageOne) >= 0) {
//do stuff
}
我已经在你可以玩的JSFiddle上放了一个例子。
答案 2 :(得分:0)
如果您想知道用户所在的页面,假设它是tag
后面的“目录”,那么我建议:
if (url.indexOf('tag')) {
var temp = url.split('/tag/')[1];
var curPage = temp.substring(0,temp.indexOf('/'));
return curPage;
}
答案 3 :(得分:0)
您可以使用window.location.pathname
代替,因为主机名(例如stackoverflow.com)始终相同。
因此,window.location.pathname将为您提供其余的URL。在这个例子中,将给你:
的 “/问题/ 9706497 / jquery的检查换部对的一-URL”强>
现在,如果要检查前两个段,可以拆分字符串:
window.location.pathname.split("/");
那会给你:
["", "questions", "9706497", "jquery-check-for-part-of-a-url"]
现在检查您需要的索引,例如:
parts = window.location.pathname.split("/");
if (parts[1] == "projects") {
alert("Projects!!");
}
答案 4 :(得分:0)
只检查'tag'是否存在:
if (window.location.match(/tag/)!==null) {
//do something
}
删除任何网址的最后一部分:
var url = window.location.split('/');
url.pop();
url = url.join().replace(/,/g, '/')+'/';