Как использовать URL-адрес ссылки в

#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.