Javascript 单击获取href的顶级主机名

Javascript 单击获取href的顶级主机名,javascript,jquery,html,Javascript,Jquery,Html,我有一个链接,我想得到顶级域名的域名点击。 在我的例子中,我有 <a href="http://www.example.com/this/that">click on this link</a> 而不是 www.example.com 实现这一目标的最佳方法是什么?试试看 jQuery(document).on("click", "a", function (event) { event.preventDefault(); var id = jQ

我有一个链接,我想得到顶级域名的域名点击。 在我的例子中,我有

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

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

试试看

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);
});

您可以尝试使用document.domain,尽管它没有window.location.host受广泛支持。

实际上它非常简单,不需要正则表达式:

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


我不确定它是否在Internet Explorer中工作。

否。他试图从锚标记href属性中提取域,而不是从当前页面获取域。正则表达式在技术上可以工作,但不是非常理想。此外,如果正则表达式不匹配,尝试使用[1]将抛出一个错误
var domain = jQuery(this).attr('href').match(/^https?:\/\/([^\/]+)/);
if (domain != null && typeof domain[1]!='undefined')
  domain = domain[1];
else
  domain = '';
jQuery(document).on("click", "a[href]", function (event) {
    event.preventDefault();
    alert(this.hostname);
});