0

我有一个链接,我想在其中获取所点击域的顶级域名。在我的例子中,我有

    <a href="http://www.example.com/this/that">click on this link</a>

当我点击它时,我想要一个警报说

www.example.com

我知道 window.location.host 是针对站点的实际位置执行此操作的,但不确定如何为单个 href 获取此信息,我尝试了以下方法,但它返回

    jQuery(document).on("click", "a", function (event) {
        event.preventDefault();
        var id = jQuery(this).attr('href') || 'nohref';
        alert(window.location.host);
        alert(id);
    });

http://www.example.com/this/that

而不是 www.example.com

实现这一目标的最佳方法是什么?

4

4 回答 4

4

其实很简单,不需要正则表达式:

jQuery(document).on("click", "a[href]", function (event) {
    event.preventDefault();
    alert(this.hostname);
});

请参阅MDN-HTMLAnchorElement

我不确定它是否适用于 Internet Explorer。

于 2013-11-14T00:43:19.710 回答
2

尝试

jQuery(document).on("click", "a", function (event) {
    event.preventDefault();
    var id = jQuery(this).attr('href') || 'nohref';
    var domain = id.match(/http[s]?\:\/\/(.*?)[\/$]/)[1]
    alert(domain);
});
于 2013-11-14T00:28:53.267 回答
1
var domain = jQuery(this).attr('href').match(/^https?:\/\/([^\/]+)/);
if (domain != null && typeof domain[1]!='undefined')
  domain = domain[1];
else
  domain = '';
于 2013-11-14T00:31:47.923 回答
0

您可以尝试使用document.domain,尽管它不像window.location.host.

于 2013-11-14T00:32:11.563 回答