#if-statement #conditional-statements #blogger #referrer
#оператор if #условные операторы #blogger #реферер
Вопрос:
Я хочу загружать некоторые скрипты только при трафике с определенного имени хоста.
Например: я загружу скрипт, когда трафик блога из www.mywebsite2.com . Как я могу это сделать? Я много перепробовал, но все равно не смог найти ничего, связанного с этим.
Вот несколько кодов, которые я пробовал.
<b:if cond='"referrer" == "www.mywebsite2.com"'>
<script>...</script>
<b:else/>
<script>...</script>
</b:if>
Как я могу использовать реферер в этом.
Ответ №1:
Вы можете определить, была ли открыта ссылка с определенного сайта, если ссылка на этом сайте не имеет rel="noopener"
значения.
Например, домен вашего сайта http://0.example.com
и домен вашего сайта-реферера http://1.example.com
.
На сайте реферера пользователь нажимал на ссылку:
<a href="http://0.example.com" target="_blank">link</a>
С вашего сайта вы можете таким образом определять входящий трафик:
if (window.opener amp;amp; window.opener.location.hostname === '1.example.com') {
// Run the script for `http://1.example.com`
}
Чтобы загрузить внешний скрипт под этим условным блоком, вы можете попробовать AJAX или общую вставку DOM:
Способ 1:
// Run the script for `http://1.example.com`
fetch('http://0.example.com/script.js').then(response => response.text()).then(text => {
let script = document.createElement('script');
script.textContent = text;
document.head.appendChild(script);
// Other script goes here ...
});
Способ 2:
// Run the script for `http://1.example.com`
let script = document.createElement('script');
script.src = 'http://0.example.co./script.js';
document.head.appendChild(script);
script.addEventListener('load', e => {
// Other script goes here ...
});
Комментарии:
1. Спасибо, это работает. Но опять же есть проблема. Если я хочу загрузить какой-либо внешний файл .js, то как я могу это сделать с этим условием if.