Есть ли чистый способ использовать navigator.userAgent в Jekyll? - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь использовать некоторые забавные вещи (1001 *) (плавная прокрутка) на моем сайте jekyll, но это не работает на мобильных устройствах, поэтому я хотел бы ограничить сценарий только рабочим столом. Я включаю script s через передний вопрос таким образом:

{% if layout.common-js %} 
  {% for js in layout.common-js %}

  <script src="{{ js | relative_url }}"></script>

  {% endfor %} 
{% endif %}

Затем я помещаю это в передний вопрос:

common-js:
  - "/assets/js/any-other-js.js" (including the smooth scroll one)
  - "/assets/js/main.js"

Это позволит мне иметь определенные страницы без плавная прокрутка.

Мне было интересно, есть ли чистый способ сделать код ниже Jekyll:

  <script>
   if (navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)|(Opera Mini)|(IEMobile)/i)) {      
    INCLUDE ONLY THE <script> files I WANT FOR MOBILE
   } 
   else {
    INCLUDE ALL THE <script> files  
   }
  </script>

Или вы предлагаете поместить этот скрипт в head из все мои макеты?

ОБНОВЛЕНИЕ: Я попробовал этот код, но, похоже, не работает:

<script>
      const body = document.querySelector("body");
      const js = document.createElement("script");

      if (navigator.userAgent.match(
          /(iPad)|(iPhone)|(iPod)|(android)|(webOS)|(Opera Mini)|(IEMobile)/i)) {
        js.src = "/assets/js/main.js";
      } else {
        js.src = "/assets/js/smoothscroll.js";
        js.src = "/assets/js/main.js";
      }

      body.appendChild(js);
</script>
...