Это странный сценарий, в котором модальное наложение, выполненное Javascript, было объявлено не закрываемым. Это очень, очень редко, однако. У нас есть один клиент, который явно гневно нажимает на кнопку, чтобы закрыть ее (активность, захваченная Fullstory; мой менеджер нашел этот экземпляр), а также пользователь в отделе маркетинга, которому не удалось удалить оверлей,либо.
Лично я считаю, что это случайность и крайний случай. Однако мне было поручено изучить и исправить его.
Я использовал стек браузера для проверки более 24 комбинаций ОС / браузера как в стандартном формате рабочего стола, так и на мобильном телефоне.
Я нашелс помощью инструмента инспектора на моей собственной машине Chrome, чтобы ссылка, окружающая -tag (для закрытия оверлея), не полностью обернула изображение. Моим решением было сделать ссылку и отображение изображения: inline-block ;. Я сомневаюсь, что это была проблема, но часть меня задавалась вопросом, могут ли пользователи браузера испытывать трудности при взаимодействии со ссылкой «закрыть», если это так.
Я также нашел опечатку в своем Javascript: пропущенная точка с запятой вконец строки, проверяющий наличие файла cookie перед удалением / отображением наложения.
<div id="cbk-XXPageDateNameXX" class="cbk-modalOverlay cbk-modal cbk-overlay">
<div class="cbk-overlayPageBlocker"> </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 и точках с запятой в Мохаве, и есть ли у вас какие-либо подобные события, которые могли бы привести меня к объяснению?
СпасибоВы за то, что терпите длинное (надеюсь, достаточно подробное) объяснение!