как подключить отдельный скрипт для отдельного домена?

Я создаю партнёрский сайт который будут фреймить партнёры. мне нужно для домена отдельный скрипт

      const DEFAULT_VALUE = "/playerjs.v.1.js"
console.log(window.location.hostname)
const casesMap = new Map();
casesMap.set("site1.com", "/playerjs-site1.js")
casesMap.set("site2.com", "/playerjs-site2.js")
casesMap.set("localhost", "/playerjs-site3.js")

function setupRequiredScript(cases) {
    document.write('<script src="' + (cases.get(window.location.hostname)|| DEFAULT_VALUE) + '"><\/script>');
};
setupRequiredScript(casesMap);    

Но он не выходит с родителя и домен всегда грузит дефолтный помогите пожалуйста


Ответы (1 шт):

Автор решения: DiD

// Если текущий host равен ...
if(location.hostname == 'stacksnippets.net'){
  // Создаем скрипт
  let script = document.createElement('script');
  // Добавляем атрибут type
  script.setAttribute('type','text/javascript');
  // вместо innerHTML можно добавить атрибут src
  script.innerHTML = 'alert(location.hostname);';
  // Добавляем скрипт в конец <head>
  document.head.appendChild(script);
}

const casesMap = new Map([
  ["site1.com", "/playerjs-site1.js"],
  ["site2.com", "/playerjs-site2.js"],
  ["stacksnippets.net", "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"],
]);

console.log(location.hostname);

if(casesMap.has(location.hostname)){
  // Создаем скрипт
  let script = document.createElement('script');
  // Добавляем атрибут type
  script.setAttribute('type','text/javascript');
  // Добавляем атрибут src
  script.setAttribute('src',casesMap.get(location.hostname));
  // Добавляем скрипт в конец <head>
  document.head.appendChild(script);
  
  setTimeout(()=>{ 
    // Создаем еще один скрипт
    let script = document.createElement('script');
    // Добавляем атрибут type
    script.setAttribute('type','text/javascript');
    // Добавим что-нибудь из jQuery
    script.innerHTML = "alert('jQuery подгрузился и работает:\\n\\n'+JSON.stringify($.support,null,2));";
    // Добавляем скрипт в конец <head>
    document.head.appendChild(script);
    alert("А это второе подтверждение, что он реально работает не только в добавленных скриптах, а во всех скриптах включая текущий, который непосредственно добавлял его в загрузку\n\n"+ JSON.stringify($.support,null,2));
  }, 1000);
}

→ Ссылка