使用window.location检查主页是否正确

时间:2015-02-08 13:50:34

标签: javascript url

是否可以使用window.location检查我是否在网站的homepahge / index上?

我正在使用

检查网址
window.location.href.indexOf("/category/something")

但是如何查看主页?它不包含任何段。

注意:我不知道主页网址是什么,因此我不能使用例如window.location.href.indexOf("myhomepage.html")等网址名称

更新:我唯一的线索是主页没有网址段。

4 个答案:

答案 0 :(得分:4)

术语homepage本身是一个相当模糊的构造,而不是technically可识别的东西。您可以拥有多个不同的目标网页,具体取决于您的屏幕尺寸,设备,凭据,浏览器,日期/时间,地理位置等。

您可以确保自己在其中一个着陆页上的唯一方法是在对域的初始GET请求期间(例如http://www.example.com)进行控制。

因此,如果您已经在页面上,那么知道您是如何到达那里的,并且如果这是该域提供的默认页面,则没有真正的方法,有些黑客可以尝试获得一般的(尽管非常容易出错)的想法。

例如,您可以编译常用主页路径列表:

var homepages = [ '/', 'index.html', 'index.htm', 'index.php', 'main.html', 'main.htm', 'homepage.html', 'index2.htm' ]; 

依此类推,然后与提供的window.location.pathname进行比较:

if (homepages.indexOf(window.location.pathname) >= 0) {
    // we might be on a "homepage"
}

答案 1 :(得分:1)

JavaScript只知道它的当前上下文。它不知道网站的层次结构在哪里,所以不,你不能在不知道主页的URL的情况下检查你是否在主页上

答案 2 :(得分:1)

如果你只是做了window.location并检查了那里的args,如果没有附加的页面/路径,url匹配origin等等,那就不够好检测 - Idk,我是从来没有必要这样做?这也适用于.NET和“其他”类型的HTML命名约定(即index.html vs index.htm)。此外,如果有人更改了文档根目录或主页指针,您或多或少知道(也就是不关心)因为window.location您可以检查以下内容:

window.location
Location {replace: function, assign: function, ancestorOrigins: DOMStringList, origin: "http://stackoverflow.com", hash: ""…}ancestorOrigins: DOMStringListassign: function () { [native code] }hash: ""host: "stackoverflow.com"hostname: "stackoverflow.com"href: "http://stackoverflow.com/"origin: "http://stackoverflow.com"pathname: "/"port: ""protocol: "http:"reload: function reload() { [native code] }replace: function () { [native code] }search: ""toString: function toString() { [native code] }valueOf: function valueOf() { [native code] }__proto__: Location

path = '/'。这很好地说明了主页的''''。

答案 3 :(得分:1)

许多网站的主页,包括stackoverflow,都包含指向同一主页的链接。

// browser url = http://example.com
<a href="http://example.com"/>my site</a>

如果您有权访问源,则可以识别此链接服务器端

<a id="homepage" href="http://example.com"/>my site</a>

因此,要检查您是否在主页上:

document.addEventListener('DOMContentLoaded', function(e) {
  var link = document.querySelector('#homepage');
  if (link.href == window.location.href) {
    //i'm on the homepage
  }
})

所以我刚看到你对这个问题的更新。如果您知道没有网址段,则window.location.pathname不会始终为“/”