Получить основное доменное имя JS

Моя цель — получить основное доменное имя текущей страницы в JS. Под основным я подразумеваю, что все эти домены должны возвращать один и тот же результат, домен:

  • домен.com
  • домен.co.uk
  • субдомен.домен.com
  • субдомен.домен.co.uk

Как видите, разбить запрос на каждый период и использовать фиксированный индекс не получится, так как второй и третий URL имеют одинаковую длину, а основной домен находится в разных индексах.

Браузер вообще распознает часть домена как основной домен? Если да, есть ли прямой способ получить его с помощью JS? Есть ли библиотеки, которые могут мне в этом помочь?


person Oscar    schedule 13.08.2020    source источник
comment
Отвечает ли это на ваш вопрос? Получить текущее доменное имя с помощью Javascript (не путь и т. д.)   -  person Wais Kamal    schedule 13.08.2020
comment
Это URL-адреса страниц, на которых вы находитесь, или строки?   -  person fedesc    schedule 13.08.2020
comment
@fedesc Я пишу плагин для Chrome, поэтому у меня есть доступ ко всем стандартным веб-API.   -  person Oscar    schedule 13.08.2020
comment
@WaisKamal Первое решение не работает, когда есть поддомен, и связанный вопрос также не дает способа сделать это.   -  person Oscar    schedule 13.08.2020
comment
Вам нужно будет объяснить, почему вам нужно это сделать, чтобы получить правильный ответ. Потому что, не выполняя оперативные запросы и не используя внешнюю ссылку, такую ​​как Mozilla PSL (которую используют браузеры, поэтому их решение делается именно так), НЕТ СПОСОБНОСТИ делать то, что вы хотите (просто наблюдение за строкой не может дать информацию о административные границы)   -  person Patrick Mevzek    schedule 21.08.2020


Ответы (1)


попробуйте библиотеки psl

// Parse domain with nested subdomains
var parsed = psl.parse('a.b.c.d.foo.example');
console.log(parsed.tld); // 'example'
console.log(parsed.sld); // 'foo'
console.log(parsed.domain); // 'foo.example'
console.log(parsed.subdomain); // 'a.b.c.d'
person Mohammad Ali Rony    schedule 13.08.2020