как подключить отдельный скрипт для отдельного домена?
Я создаю партнёрский сайт который будут фреймить партнёры. мне нужно для домена отдельный скрипт
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);
}