我正在使用此代码来检测主页并且效果很好:
var url= window.location.href;
if(url.split("/").length>3){
alert('You are in the homepage');
}
我的问题是我还需要检测网址是否包含变量,例如:
mysite.com?variable=something
我还需要检测网址上是否还有变量
我该怎么做?
答案 0 :(得分:53)
使用window.location.pathname
也可以起作用:
if ( window.location.pathname == '/' ){
// Index (home) page
} else {
// Other page
console.log(window.location.pathname);
}
答案 1 :(得分:10)
您可以通过将href与原点进行比较来了解您是否在主页上:
window.location.origin == window.location.href
要获取查询参数,您可以在此处使用答案: How can I get query string values in JavaScript?
答案 2 :(得分:5)
查看window.location docs,您想要的信息位于location.search
,因此检查它的功能可能只是:
function url_has_vars() {
return location.search != "";
}
答案 3 :(得分: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, " "));
}
在重定向之前检查查询字符串并匹配预期值并重定向为需求。
答案 4 :(得分:2)
如果当前网址是xxxxx.com,那么xxx
if (window.location.href.split('/').pop() === "") {
//this is home page
}
答案 5 :(得分:0)
我从 Mataniko 的建议中汲取了灵感,对它进行了少许修改以解决其问题:
if (window.location.origin + "/" == window.location.href ) {
// Index (home) page
...
}
通过这种方式,该测试仅在首页中通过