Как я могу установить функцию «если» JS для URL Javascript - PullRequest
0 голосов
/ 30 мая 2019

Мне нужно перезагрузить URL JavaScript в зависимости от события, сделанного на сайте.(смена языка)

Я попробовал простой способ сделать это, но он не работает.

<script>

function initAnnounce($) {
var locale = {{Lang}};

if (locale === 'en'){
src="https://script1.js.ubembed.com";}   

else if (locale === 'pl')
   {
src="https://script2.js.ubembed.com";}

else    
   {
src="https://script3.js.ubembed.com";}
};

<script>

Я хочу обновлять это каждый раз, когда язык будет соответствовать локали = условие Этот скрипт всегда находится на сайте, сайт не обновляется после смены языка.

PS.извините, если я допустил ошибки, я не копирую этот скрипт.

1 Ответ

0 голосов
/ 30 мая 2019

У вас есть разные варианты для достижения такого поведения с помощью JavaScript.Вот пример, чтобы сделать это с помощью динамического создания элемента скрипта в документе, используя document.createElement.

<script>

function initAnnounce($) {
  let locale = {{Lang}};
  let script = document.createElement('script');
  if (locale === 'en'){
    script.src = "https://script1.js.ubembed.com";
  } else if (loale === 'pl') {
    script.src = "https://script2.js.ubembed.com";
  } else {
    script.src = "https://script3.js.ubembed.com";
  }
  document.write(script.outerHTML);
};

</script>

Другой вариант будет использовать document.write() и написать новый полный скрипт-тег к документу.

Альтернативное использование nodeElement.insertBefore() вместо document.write():

<script>

function initAnnounce($) {
  let locale = {{Lang}};
  let script = document.createElement('script');
  if (locale === 'en'){
    script.src = "https://script1.js.ubembed.com";
  } else if (loale === 'pl') {
    script.src = "https://script2.js.ubembed.com";
  } else {
    script.src = "https://script3.js.ubembed.com";
  }
  let el = document.getElementsByTagName('script')[0];
  el.parentNode.insertBefore(script, el);
};

</script>

Вы также можете использовать document.body.appendChild(script);, есть много способов манипулировать документом и его элементами.

Но так как кажется, что вы используете какой-то механизм / систему шаблонов, вам следует проверить, поддерживает ли этот механизм шаблонов условные операторы (если / еще), и сделать это внутри самого шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...