Баг при установки Яндекс Метрики в тему Mobile Исправлено

1

Баг при установки Яндекс Метрики в тему Mobile.

Отключаем счетчик - боковое пролистываине пропадает.

Путем долгих и мучительнеых опытов установили, что это из-за этого элемента, который генерирует Метрика:

<iframe name="_ym_native" frameborder="0" style="opacity: 0; width: 0px; height: 0px; position: absolute; left: 100%; bottom: 100%; border: 0px !important;"></iframe>

А конкретно left: 100%; Стоит его закоменьтить, боковая прокрутка исчезает.

Отказаться от метрики - не вариант.

Менять код метрики - не вариант тоже (это запрещено пользовательским соглашением).

Как быть?


10 комментариев

  • 0
    replicant replicant 7 февраля 2019 18:09 #

    Никакого iframe на вашем сайте в мобильной теме обнаружено не было




    И в категориях тоже
    • -1
      shop shop Партнер-разработчик 8 февраля 2019 05:32 #

      Спасибо, что откликнулись. Но Вы, похоже, не понимаете как работает счетчик Яндекс Метрика.

      Бесполезно смотреть код страницы в режиме noscript

      Переключитесь в режим html (со включеным js в браузере) и Вам всё станет ясно.

      • +1

        Ересь не несите. Кто вам запрещает через css менять свойства iframe?

        • +1
          shop shop Партнер-разработчик 8 февраля 2019 12:44 #

          Я вот не думаю, что Яндекс случайно спозиционировал этот фрейм по правому верхнему углу экрана.  А Вы?

          • +2

            Вы разработчик? Что-то я сомневаюсь, если не знаете азы верстки. Создайте пустой div с такими же стилями и посмотрите что он будет за пределами окна. Все что вам ломало отображение - это CSS который был прописан в стилях темы дизайна

          • +1
            replicant replicant 8 февраля 2019 20:20 #

            Недоглядел и уже подзабыл, что у меня всякий хлам типа mc.yandex.ru на уровне dns отрубается, а с браузером у меня всё просто шикарно! Впрочем, если вам без надобности Вебвизор 2.0 для мобильной версии сайта, то могли бы перейти и на старую версию счетчика. Точность подсчета кучи голов не страдает, зато она не создает никаких iframe. В старой в основе был другой скрипт watch.js 132кБ, а в новой версии tag.js, потяжелевший до 325кБ, и как следствие - создание "конфликтующего" iframe из-за расширения функционала сервиса Метрики на стороне Яндекса (повезло теме Мобайл - попала внезапно под раздачу). Когда-то давно смотрел на карты скроллинга, аналитику форм и т.п., а потом отключил их нафиг в интерфейсе Метрики, т.к. внезапных открытий, которые были бы мне неизвестны, это знание не принесло, а основные показатели и старый счетчик прекрасно считает. Код старого счетчика предлагается в Метрике до сих пор со ссылкой на то, что будет работать только первый Вебвизор.

          • +1
            Михаил Ушенин Михаил Ушенин Webasyst 8 февраля 2019 09:56 #

            Разрешает ли «Яндекс.Метрика» изменять стили фрейма? Например, так:

            iframe[name="_ym_native"] {
                left: 0!important;
            }

            • +1
              shop shop Партнер-разработчик 8 февраля 2019 12:40 #

              С боковым пролистыванием добавление этого кода в /wa-data/public/site/themes/mobile/mobile.css это проблему решает.

              Только вот не возникнет ли новой проблемы с Метрикой.

              Возможных проблем вижу 2:
              1. Все же это манипуляции с кодом счетчка
              2. И самое главное, что позиционирование фрейма от Метрики меняется. Изначально метрика занимает позицию самая верхняя правая. А после внесения правко в css позиция становится самая верхняя левая. 

              Вообще думаю, что Метрика не зря такие стили прописали и спозиционировали именно в верхнем правом углу. А дальше, скорее всего, они ведут отсчет всех координат исходя из этой позиции.

              Это только мое личное предположение, но если бы им было без разницы где именно расположить этот фрейм они бы стили к нему написали попроще.

              Ну и соответственно может много чего сломаться, типа вебвизора, карты ссылок, карты кликов и т.д.

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

            • +1

              /wa-data/public/site/themes/mobile/mobile.css 


              iframe {
                margin: 1em 0 0;
                width: 100% !important;
              }
              @media (orientation: portrait) {
                iframe {
                  height: 270px !important;
                }
              }
              @media (orientation: landscape) {
                iframe {
                  height: 360px !important;
                }
              }
              @media (orientation: portrait) and (max-width: 320px) {
                iframe {
                  height: 225px !important;
                }
              }
              @media (orientation: landscape) and (max-width: 480px) {
                iframe {
                  height: 270px !important;
                }
              }

              это CSS темы дизайна mobile, дальше играйте сами

              • +1
                shop shop Партнер-разработчик 8 февраля 2019 12:51 #

                Если в теме изменить

                iframe {  margin: 1em 0 0;  width: 100% !important; }
                на
                iframe {margin: 1em 0 0;}

                То проблема со счетчиком уходит.
                --------
                В общем так и сделали. Будет здорово, если разработчики темы тоже что-то с этим сделают. Может найдут более изящный способ исправления.

                Они ведь тоже не зря этот стиль писали))

                Добавить комментарий

                Чтобы добавить комментарий, зарегистрируйтесь или войдите