26

我正在使用此代码来检测主页,并且效果很好:

var url= window.location.href;
if(url.split("/").length>3){
    alert('You are in the homepage');
}

我的问题是我还需要检测 url 是否有变量,例如:

mysite.com?variable=something

我还需要检测 url 是否也有变量

我怎样才能做到这一点?

4

6 回答 6

76

使用window.location.pathname也可以:

if ( window.location.pathname == '/' ){
    // Index (home) page

} else {
    // Other page
    console.log(window.location.pathname);
}

请参阅有关 window.location.pathname 的 MDN 信息

于 2015-04-22T04:48:13.787 回答
14

您可以通过比较 href 和 origin 来确定您是否在主页上:

window.location.origin == window.location.href

要获取查询参数,您可以在此处使用答案: 如何在 JavaScript 中获取查询字符串值?

于 2013-06-24T08:34:15.693 回答
6

查看window.location 文档,您想要的信息在 中location.search,因此检查它的功能可能是:

function url_has_vars() {
   return location.search != "";
}
于 2013-06-24T08:34:15.543 回答
3

如果当前 url 是 xxxxx.com 之类的,那么 xxx

if (window.location.href.split('/').pop() === "") { 
    //this is home page
}
于 2017-08-04T05:34:08.477 回答
2

您需要一个查询字符串搜索功能来执行此操作..

function getParameterByName(name) {  
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");  
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),  
        results = regex.exec(location.search);  
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));  
}

在重定向之前检查查询字符串并与预期值匹配并根据要求进行重定向。

于 2013-06-24T08:38:14.390 回答
1

Mataniko 的建议中汲取灵感,我对其进行了一些修改以解决其问题:

if (window.location.origin + "/" == window.location.href ) {
  // Index (home) page
  ...
}

这样,本次测试只在首页通过

于 2020-07-03T12:48:13.407 回答