【问题标题】:a way to get the secondlevel domain of a website?获取网站二级域名的方法?
【发布时间】:2012-04-12 22:36:29
【问题描述】:

你知道通过类似于document.location.hostname的javascript获取网站二级域的方法吗?

我想创建一个 mailto 小书签,它从字符串“info@”和二级域生成电子邮件地址。 document.location.hostname 的问题是“www”。字首。

【问题讨论】:

    标签: javascript url dns mailto hostname


    【解决方案1】:

    负数可以从末尾切片,什么给出二级域:

    var domain=location.hostname.split('.').slice(-2).join('.');
    

    【讨论】:

    • “www.***.co.uk”等域的错误
    • @AndreyP .co.uk 是二级域名en.m.wikipedia.org/wiki/.co_(second-level_domain)
    • 有趣。然后根据其期望的行为,原始问题似乎是错误的。 ilzel 可能想向 info@***.co.uk 发送电子邮件,而不是 info@co.uk
    • @AndreyP 接受的答案对 OP 来说更好。对于那些寻找二级域名而忽略 .co.uk 和类似域名的人来说,这个答案更好。感谢您指出这一点。
    • 请注意,如果目标是获取 SDL 和 TLD 以设置 cookie 或发送邮件,则由于这些地址,这两种解决方案都不会始终有效。我认为没有办法仅通过解析主机名来确定正确的“最高级别但不是太高”的域是什么。
    【解决方案2】:

    又快又脏……

    var domain = location.hostname.split('.').slice(1).join('.');
    

    但这只会去掉第一部分。如果您有多个级别的服务器名称,那是行不通的。通过你应该能够弄清楚。

    【讨论】:

    • 谢谢!刚刚测试过,效果很好。如果是子域,我将手动更正(在打开邮件客户端之前,我必须确认提示
    猜你喜欢
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多