Сломался полноэкранный режим на сайте (fullscreen) при обновлении Chrome 71 / Firefox etc. + решение
заметить можно в фотоальбомах
В текущий момент пострадали абсолютно все сайты, работающие на платформе InstantCMS, но реально это заметят только те, кто в работе использует полноэкранный режим (например, в фотоальбомах). Там при попытке открыть полноэкранный режим вылезает следующая ошибка:
Uncaught (in promise) TypeError: Failed to execute 'requestFullscreen' on 'Element': parameter 1 ('options') is not an object.
at Object.request (screenfull.js?1525189823:7)
at Object.toggle (screenfull.js?1525189823:7)
at HTMLDivElement.<anonymous> (photos.js?1525189823:87)
at HTMLDocument.dispatch (jquery.js?1525189823:3)
at HTMLDocument.r.handle (jquery.js?1525189823:3)
В InstantCMS за fullscreen отвечает либа "screenfull.js", она находится по адресу "\templates\default\js\screenfull.js".
Разработчик этой либы несколько дней назад выкатил новую версию, её можно забрать здесь — github.com/sindresorhus/screenfull.js (там по ссылке найдите файл версии 4.0.0, или выше, он работает, надо просто заменить этим файлом старую либу) .
На своем проекте я либу уже обновил, у меня полноэкранный режим заработал и работает штатно.
Если кому это необходимо — велкам 😊.
TypeError: Failed to execute 'requestFullscreen' on 'Element': parameter 1 ('options') is not an object.
at Object.request (all.js?1532793765:458)
at Object.toggle (all.js?1532793765:458)
at HTMLDivElement.<anonymous> (photos.js?1532793765:87)
at HTMLDocument.dispatch (jquery.js?1532793765:3)
at HTMLDocument.r.handle (jquery.js?1532793765:3)
request @ all.js?1532793765:458
toggle @ all.js?1532793765:458
(anonymous) @ photos.js?1532793765:87
dispatch @ jquery.js?1532793765:3
r.handle @ jquery.js?1532793765:3
В остальных фото в полный экран работают.
Более того авторизованные пользователи при клике на полноэкранный просмотр еще могут видеть изображения в размере Оригинала, а вот гости видят только в размере 640х480
Установил чистый Инстант, загрузил фото и попробовал открыть полноэкранный режим в 5-ти браузерах.
В IE полноэкранный режим не работает вообще, в остальных по описанному выше алгоритму.
Не знаю как давно, но с месяц точно.
это рабочее решение. После замены screenfull.js полноэкранный режим просмотра фоток заработал у меня во всех браузерах, включая новейшие версии Файрфокс и Едж. Все, что на движке хрома (яндекс, опера и т.п.), тоже работают правильно. Мобильные версии тоже. Единственный, кто отказался показывать в полный экран — Internet Explorer, у меня он v.11.В InstantCMS за fullscreen отвечает либа "screenfull.js", она находится по адресу "\templates\default\js\screenfull.js".
Разработчик этой либы несколько дней назад выкатил новую версию, её можно забрать здесь — github.com/sindresorhus/screenfull.js (там по ссылке найдите файл версии 4.0.0, или выше, он работает, надо просто заменить этим файлом старую либу
Не работает, что не так делаю?После замены screenfull.js полноэкранный режим просмотра фоток заработал
1. Скачал архив и достал из папки dist файлик screenfull.js.
2. Закачал на сайт с заменой существующего.
3. Открываю фото на сайте, по кнопке "На весь экран" фото на весь экран не растягивается.
Браузер до последней версии обновлен?почему у меня заработало
Я не совсем по англ понимаю, но по моему у всего интернета такая проблемаеще в прошлом году
community.ubnt.com/t5/UniFi-Video/Chrome-71-Fullscreen-doesn-t-work/td-p/2583406/page/4
кеш браузера чистили? В админке (настройки — интерфейс — абстрактный счетчик) циферку увеличили? К сожалению, я не программист от слова ни разу и поэтому не могу сказать, почему у меня заработало (это произошло сразу, как прочитал про замену либы, еще в прошлом году), а у Вас нет. Спрашивал юзеров — у них тоже фотки на полный экран открываются.Не работает, что не так делаю?
Щас вспомнил, что вроде бы даже и файл этот не скачивал: открыл как текст github.com/sindresorhus/screenfull.js/blob/gh-pages/dist/screenfull.js и заменил содержие в том, что был на сайте. Версия там сейчас более новая, что у меня (у меня 4.0, а там уже 4.20).
Сейчас еще попробую где нибудь что нибудь почистить )
Конечно! Чистил все что мог.кеш браузера чистили?
/*! * screenfull * v4.0.0 - 2018-12-15 * (c) Sindre Sorhus; MIT License */ !function(){"use strict";var u="undefined"!=typeof window&&void 0!==window.document?window.document:{},e="undefined"!=typeof module&&module.exports,t="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,c=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,l=n.length,t={};r<l;r++)if((e=n[r])&&e[1]in u){for(r=0;r<e.length;r++)t[n[0][r]]=e[r];return t}return!1}(),l={change:c.fullscreenchange,error:c.fullscreenerror},n={request:function(l){return new Promise(function(e){var n=c.requestFullscreen,r=function(){this.off("change",r),e()}.bind(this);l=l||u.documentElement,/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)?l[n]():l[n](t?Element.ALLOW_KEYBOARD_INPUT:{}),this.on("change",r)}.bind(this))},exit:function(){return new Promise(function(e){var n=function(){this.off("change",n),e()}.bind(this);u[c.exitFullscreen](),this.on("change",n)}.bind(this))},toggle:function(e){return this.isFullscreen?this.exit():this.request(e)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=l[e];r&&u.addEventListener(r,n,!1)},off:function(e,n){var r=l[e];r&&u.removeEventListener(r,n,!1)},raw:c};c?(Object.defineProperties(n,{isFullscreen:{get:function(){return Boolean(u[c.fullscreenElement])}},element:{enumerable:!0,get:function(){return u[c.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return Boolean(u[c.fullscreenEnabled])}}}),e?module.exports=n:window.screenfull=n):e?module.exports=!1:window.screenfull=!1}();
Теперь везде все работает.
Что за напасть… Где еще копать?