У меня есть ссылка, где я хочу получить доменное имя верхнего уровня для домена. В моем примере у меня есть
<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
Каков наилучший способ достичь этого?
Это довольно просто, нет необходимости в регулярном выражении:
jQuery(document).on("click", "a[href]", function (event) {
event.preventDefault();
alert(this.hostname);
});
Я не уверен, работает ли он в Internet Explorer.
Пытаться
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);
});
var domain = jQuery(this).attr('href').match(/^https?:\/\/([^\/]+)/);
if (domain != null && typeof domain[1]!='undefined')
domain = domain[1];
else
domain = '';
Вы можете взять удар по использованию document.domain
, хотя он не так широко поддерживается, как window.location.host
.
[1]
приведет к ошибке, если регулярное выражение не совпадает