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.origin
是http://www.mywebsite.com
而window.location.href
是http://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(经过测试)
html 检测文本框的粘贴事件。来自http://stackoverflow.com/questions/5450449/detect-paste-in-input-box