仅使用JavaScript获取基本主机名,因此Cookie可在整个网站范围内使用

时间:2014-12-19 06:10:09

标签: javascript regex url cookies subdomain

我正在寻找一种方法来获取window.location.hostname并最终获得基本域名,无论情况如何。所以:

http://example.domain.com
https://www.example.domain.com
https://www.example.domain.com/stuff/index.php

我最终会:

domain.com

来自:example.domain.co.uk/会产生:domain.co.uk

我在这里搜索了很多关于这个主题的问题,似乎没有真正得出完整的答案。有些涉及使用复杂的正则表达式,很难说它是否有时会失败。而其他答案仅仅是example.domain.com的结果。

我完全不知道在JavaScript中获取此值的方法并不简单。我正在为使用cookie存储用户首选项的网站编写插件。我担心如果用户在一个主机名的页面上使用插件时设置首选项,比如说one.domain.com,那么他们会在two.domain.com上托管的另一个页面上使用该插件需要重新设置他们的偏好。当我设置cookie时,我希望能够在站点范围内设置它们(在domain.com级别)。由于这是一个插件,域名将不知道,需要从window.location.hostname开始计算。

那么有没有一种标准的方式来达到我正在寻找的东西?或者我只是以错误的方式接近这个?我想我可以为网站所有者提供一个配置设置来输入他们的基本域名并按照这种方式进行操作,但是如果可能的话,我宁愿不去那条路。老实说,我仍然想知道如何做到这一点。提前感谢任何建议!

1 个答案:

答案 0 :(得分:1)

window.location.host 

将返回域名。但是,在您的情况下,它将返回“example.domain.com”。 然后你需要对它进行一些操作,使用split函数来获得所需的值。