Требуется ли в движке JavaScript Mojave Chrome точка с запятой? - PullRequest
0 голосов
/ 04 ноября 2019

Это странный сценарий, в котором модальное наложение, выполненное Javascript, было объявлено не закрываемым. Это очень, очень редко, однако. У нас есть один клиент, который явно гневно нажимает на кнопку, чтобы закрыть ее (активность, захваченная Fullstory; мой менеджер нашел этот экземпляр), а также пользователь в отделе маркетинга, которому не удалось удалить оверлей,либо.

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

Я использовал стек браузера для проверки более 24 комбинаций ОС / браузера как в стандартном формате рабочего стола, так и на мобильном телефоне.

Я нашелс помощью инструмента инспектора на моей собственной машине Chrome, чтобы ссылка, окружающая -tag (для закрытия оверлея), не полностью обернула изображение. Моим решением было сделать ссылку и отображение изображения: inline-block ;. Я сомневаюсь, что это была проблема, но часть меня задавалась вопросом, могут ли пользователи браузера испытывать трудности при взаимодействии со ссылкой «закрыть», если это так.

Я также нашел опечатку в своем Javascript: пропущенная точка с запятой вконец строки, проверяющий наличие файла cookie перед удалением / отображением наложения.

<div id="cbk-XXPageDateNameXX" class="cbk-modalOverlay cbk-modal cbk-overlay">
    <div class="cbk-overlayPageBlocker">&nbsp;</div>
    <div class="cbk-modalOverlayContent cbk-content cbk-containerObject cbk-gotham cbk-standardText">
        <div class="cbk-modalOverlayCloseButton cbk-closeButton cbk-closeLink">
            <a href="#" class="cbk-closeLink" title="Close Window"><img src="images/navigation/CandB_CLOSE_ICON_48.svg?$staticlink$" alt="Close" width="48" /></a>
        </div>
        <div class="cbk-modalOverlayInnerWrapper cbk-innerWrapper cbk-innerWrapper01">
.
.
.
        </div>
    </div>
</div>
    function removePopUp() {
        cbk_thisOverlayCookie = checkCookie(cbk_cookieName);
        cbk_removePopUp = true;
        $('#cbk-XXPageDateNameXX').remove();

        if (!cbk_thisOverlayCookie) {
            setCookie(cbk_cookieName, 'viewed', 30);
        }
    }

Следующая строка вышеупомянутого Javascript была той, в которой изначально отсутствовала точка с запятой в конце:

cbk_thisOverlayCookie = checkCookie(cbk_cookieName);

Код отлично работает во всех протестированных браузерах и комбинациях ОС. Я тщательно его протестировал во время разработки и успешно выполнил несколько проходов QA.

У меня есть Sierra Mac для моей разработки, и я никогда не сталкивался с этой проблемой.

Поскольку проблема только казаласьна 2 продуктах Apple (на одном смартфоне, а на другом - на настольном компьютере, на котором установлен новейший браузер Chrome), мне было интересно, есть ли в Mojave (или Chrome для Mojave) известная строгая интерпретация Javascript, которая потребует использования точек с запятой.

Я очень строг в отношении использования точек с запятой, но, в этом случае, вероятно, у меня просто проскальзывало палец или что-то в этом роде, поэтому я упустил его.

Мне не удалось воспроизвести его и женщину из отдела маркетинга, котораясообщил об этом, исправил проблему после очистки файлов cookie.

Так как меня просят исправить это, я почти сошел с ума и цепляюсь за соломинку.

Я настроил Javascript, исправляя мою опечатку, но так как я никогда не был в состоянии повторить это, используя любую комбинацию OS / Browser в стеке браузера, я не уверен, еслиЯ исправил это или как.

Итак, что вы, люди, знаете о строгости Javascript и точках с запятой в Мохаве, и есть ли у вас какие-либо подобные события, которые могли бы привести меня к объяснению?

СпасибоВы за то, что терпите длинное (надеюсь, достаточно подробное) объяснение!

1 Ответ

0 голосов
/ 06 ноября 2019

Хорошо, оказалось, что все мои исследования и устранение неисправностей только выявили тот факт, что внешний ресурс ранее представил другой JavaScript на странице, который очень периодически приводил к искажению моего JavaScript и не давал ему сработать. раз в 4600.

Потребовалось много времени, чтобы подтвердить это! ARRRRGH!

Закройте этот вопрос, пожалуйста. Это был тупик.

...