Как заставить Smarty не переносить JavaScript-код в конец страницы


#1

Можно ли сделать так, чтобы Smarty не переносил JavaScript-код в конец страницы (секция отделенная комментарием “Inline scripts”)?


#2

Попробуйте в открывающий тег <script> вставить data-no-defer. Чтоб было так <script data-no-defer>


#3

Большое спасибо, сработало!


#4

чтобы Smarty не переносил JavaScript-код в конец страницы

Сделать можно. Но нежелательно :slight_smile: Вот что Google говорит по такому случаю:
https://developers.google.com/web/fundamentals/performance/get-started/httprequests-5#script_location

Для повышения удобства использования, стоит скрипты перемещать в конец страницы:

  <head>
  </head>
  <body>
    [Body content goes here.]
  <script src="mainscript.js"></script>
  </body>
</html>

#5

Проблема была с счетчиком LiveInternet. Запись визуального содержимого производилась через document.write(), соответственно, скрипт необходимо было размещать именно в том месте, где должен был располагаться элемент. Атрибут data-no-defer решил проблему, однако при переходе в режим редактирования контента содержимое сайта полностью заменялось на отображение счетчика. Пришлось отказаться и от этого варианта, заменив вызов document.write() на вызов одной из функций jQuery и перенеся скрипт в конец страницы, как и полагается (средствами Smarty).