@pofx
Любитель больших сисек и больших АПов

Скрыть код scritps через css для определного языка (Плагин Polylang, WP)?

Есть скрипт от bitrix24.

<script>
        (function(w,d,u){
                var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
        })(window,document,'https://cdn-ru.bitrix24.ru/b11797736/crm/site_button/loader_4_met7nh.js');
</script>


надо его скрыть на определенных языках, а именно KA и EN

.language-script:lang(ka) {
display: none;
}


Попытался через этот CSS.

<div class="language-script"><script>
        (function(w,d,u){
                var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
        })(window,document,'https://cdn-ru.bitrix24.ru/b11797736/crm/site_button/loader_4_met7nh.js');
</script></div>


Все работает, проверяю через CSS все скрывает. Но скрипт все равно подгружается и показывается на сайте.
  • Вопрос задан
  • 250 просмотров
Решения вопроса 2
Kozack
@Kozack Куратор тега CSS
Thinking about a11y
Скрипт сам по себе и так невидимый. Скорее всего вы хотите скрыть те элементы которые этот скрипт создаёт. Но в вашем случае, логичнее было бы проверять язык и просто не запускать скрипт на определённых языках:
if (document.documentElement.lang !== 'ka' && document.documentElement.lang !== 'en') { // <-- 


(function(w,d,u){
                var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
        })(window,document,'https://cdn-ru.bitrix24.ru/b11797736/crm/site_button/loader_4_met7nh.js');


}
Ответ написан
AntonLitvinenko
@AntonLitvinenko
HTML coder
<?php 
$my_lang = pll_current_language();  
if ( $my_lang != 'ka' || $my_lang != 'en'  ) { 
  echo 'тут ваш скрипт';
}
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
paulvonlecter
@paulvonlecter
Nemo me impune lacessitt
Видимость элемента не влияет на его выполнение. Любой <script> все равно будет выполнен интерпретатором. Оберните этот элемент в условный комментарий в РНР, чтобы исключить его на этапе генерации страницы, либо сделайте то же самое с его кодом JS на странице, как это отметили выше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы