JQuery Detect If in Homepage 和 Homepage PLUS url 变量

Posted

技术标签:

【中文标题】JQuery Detect If in Homepage 和 Homepage PLUS url 变量【英文标题】:JQuery Detect If in Homepage and Homepage PLUS url Variables 【发布时间】:2013-06-20 16:50:18 【问题描述】:

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

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

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

mysite.com?variable=something

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

我该怎么做?

【问题讨论】:

【参考方案1】:

看看window.location docs,你想要的信息在location.search,所以检查它的函数可以是:

function url_has_vars() 
   return location.search != "";

【讨论】:

【参考方案2】:

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

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

要获取查询参数,您可以在此处使用答案: How can I get query string values in javascript?

【讨论】:

我注意到 href 可以返回带有斜杠的 url,例如 mysite.com/ ,而 origin 没有斜杠... 这个答案是错误的:它失败了,因为window.location.originhttp://www.mywebsite.comwindow.location.hrefhttp://www.mywebsite.com/【参考方案3】:

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

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, " "));  

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

【讨论】:

【参考方案4】:

使用window.location.pathname 也可以:

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

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

见MDN info on window.location.pathname。

【讨论】:

if ( window.location.pathname == '/' || window.location.pathname == '/index.php') // your stuff 完美!!谢谢【参考方案5】:

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

if (window.location.href.split('/').pop() === "")  
    //this is home page

【讨论】:

【参考方案6】:

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

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

这样,这个测试只在首页通过

【讨论】:

以上是关于JQuery Detect If in Homepage 和 Homepage PLUS url 变量的主要内容,如果未能解决你的问题,请参考以下文章

Detect Cycle In Directed/Undirected Graph

markdown JQuery Detect Scroll at Bottom(经过测试)

Detect types in python2

Jquery detect page refresh

html 检测文本框的粘贴事件。来自http://stackoverflow.com/questions/5450449/detect-paste-in-input-box

jQuery DataTables:如何添加类if the string exists in the?