jquery - 检查网址的一部分

时间:2012-03-14 17:00:03

标签: jquery html url if-statement

我正在使用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/

我该怎么做?

5 个答案:

答案 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;
}

JS Fiddle demo

答案 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, '/')+'/';