Веб-сайт не прокручивается в Windows Phone

Я сделал отзывчивый веб-сайт, интегрированный с nodejs, который отлично работает на всех устройствах.

Но в браузере IE Windows Phone веб-страница не прокручивается вниз, я не знаю, что вызывает это.

/*css*/
@media (max-width: 400px) {
    @-ms-viewport {
        width: 320px;
    }
}

/*js*/
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
    var msViewportStyle = document.createElement("style");
    msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));

    document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
}

У реагирования были некоторые проблемы с Windows Phone, поэтому я использовал вышеуказанные исправления кода, чтобы исправить проблему. Но проблема с прокруткой остается, кто-то знает, как это исправить?

Ответ 1

Исправление

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

Реализация следующего должна устранить связанные с вами запросы:

/*CSS*/
@-webkit-viewport{width:device-width}
@-moz-viewport{width:device-width}
@-ms-viewport{width:device-width}
@-o-viewport{width:device-width}
@viewport{width:device-width}

/*Javascript*/
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
    var msViewportStyle = document.createElement("style");
    msViewportStyle.appendChild(
        document.createTextNode(
            "@-ms-viewport{width:auto!important}"
        )
    );
    document.getElementsByTagName("head")[0].
        appendChild(msViewportStyle);
}

Почему это делается?

Основная причина, по которой это исправление необходимо, - это то, что Windows Phone 8 обладает прекрасной возможностью интерпретировать ширину устройства, а не оптимальную ширину видового экрана производителя, но фактический размер разрешения (я считаю, что это единственная мобильная платформа для этого...). Это означает, что единственное устройство, на самом деле прекрасно отображающее все, - это Nokia Lumia 920 (их флагманский продукт). Все остальные будут иметь побочные эффекты.

Первоначально решение, которое у вас есть, является рекомендуемым способом обойти это Microsoft, но, как вы видели, это немного не по себе. Это связано с тем, что он заставляет Browser определять ширину экрана, а не фактический производитель, который, в свою очередь, может иметь глюки (как вы видели).