Ramzzes
@Ramzzes

Как получить имя домена, с которого загружен скрипт?

Собственно один и тот же скрипт может подключаться с разных доменов.
Может вот так
<script src="http://test.ru/script.js"></script>
Или например так
<script src="http://example.com/script.js"></script>

Как мне в коде скрипта определить, с какого домена он был загружен?
  • Вопрос задан
  • 551 просмотр
Пригласить эксперта
Ответы на вопрос 2
gelevanog
@gelevanog
javascript developer
// объявляем массив 
var domains = []
// обходим все скрипты
        $('script').each(function (i) {
            var $this = $(this);
// объявляем номинальные ссылки, скармливаем атрибуту href атрибут src
            var a  = $('<a href=' + $this.attr('src') + '/>');
            var scriptName = '';
// получаем имя скрипта
            if(!scriptName.indexOf('/') > -1) {
// если домен сторонний - обрезаем до последнего "/"
                scriptName = /[^/]*$/.exec($this.attr('src'))[0];
            } else {
// если локальный ничего не обрезаем
                scriptName = $this.attr('src');
            }         
// загоняем в массив обект типа {script: {hostname: 'hostname', scriptName: 'scriptname'}}
            domains.push({
                script: {
// используется браузерный метод тэга <a> 
                    hostname: a[0].hostname,
                    scriptName: scriptName
                }               
            });
        });
// выводим результат
        console.log(domains);
Ответ написан
Комментировать
mlnkv
@mlnkv
JavaScript Developer
if (document.querySelector('script[src*="test.ru/script.js"]')) {
  /* загружен с test.ru */
} else {

}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы