【问题标题】:Get the Base Hostname Using Only JavaScript So Cookies Work Sitewide仅使用 JavaScript 获取基本主机名,以便 Cookie 在整个站点范围内工作
【发布时间】:2015-02-18 01:38:49
【问题描述】:

我正在寻找一种方法来获取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

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

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

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

【问题讨论】:

    标签: javascript regex url cookies subdomain


    【解决方案1】:
    window.location.host 
    

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

    【讨论】:

    • 我认为你错过了问题的重点。他们知道他们可以得到,但他们只想要根域并且他们不知道如何只获得根域。
    • 你是对的。只是想告知,在 Javascript 中没有其他方法可以做到这一点。
    • 是的,你是对的,无论是关于根域,还是将我的多重人格称为“他们”。我现在的性格想对这在 Javascript 中不容易实现的事情有点愤怒;-)
    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多