737737
738738 < script >
739739 var elem = document . documentElement ;
740+
740741 function openFullscreen ( ) {
741742 if ( elem . requestFullscreen ) {
742743 elem . requestFullscreen ( ) ;
743- // For safari browser
744744 } else if ( elem . webkitRequestFullscreen ) {
745745 elem . webkitRequestFullscreen ( ) ;
746- // For IE(supported above 10)
747746 } else if ( elem . msRequestFullscreen ) {
748747 elem . msRequestFullscreen ( ) ;
749748 } else if ( elem . mozRequestFullscreen ) {
754753 function closeFullscreen ( ) {
755754 if ( document . exitFullscreen ) {
756755 document . exitFullscreen ( ) ;
757- } else if ( document . webkitExitFullscreen ) { /* Safari */
756+ } else if ( document . webkitExitFullscreen ) {
758757 document . webkitExitFullscreen ( ) ;
759- } else if ( document . msExitFullscreen ) { /* IE11 */
758+ } else if ( document . msExitFullscreen ) {
760759 document . msExitFullscreen ( ) ;
761- } else if ( document . mozExitFullscreen ) { /* IE11 */
760+ } else if ( document . mozExitFullscreen ) {
762761 document . mozExitFullscreen ( ) ;
763762 }
764763 }
765- var count = 0 ;
764+
766765 function setIcon ( ) {
767- var property = document . getElementById ( FullScreen ) ;
768766 var iconCode = document . querySelector ( '#FullScrIcon' ) ;
769- //Calling full Screen
770- if ( count == 0 ) {
767+ // Determine fullscreen state using the browser fullscreen API
768+ // instead of relying on a manual counter. This keeps the icon
769+ // in sync when fullscreen is exited via ESC or browser controls.
770+ var isFullscreen =
771+ document . fullscreenElement ||
772+ document . webkitFullscreenElement ||
773+ document . mozFullScreenElement ||
774+ document . msFullscreenElement ;
775+
776+ if ( ! isFullscreen ) {
771777 openFullscreen ( ) ;
772- iconCode . textContent = '\ue5d1' ;
773- count = 1 ;
774- }
775- //Closing full Screen
776- else {
778+ iconCode . textContent = '\ue5d1' ; // fullscreen_exit icon
779+ } else {
777780 closeFullscreen ( ) ;
778- iconCode . textContent = '\ue5d0' ;
779- count = 0 ;
781+ iconCode . textContent = '\ue5d0' ; // fullscreen icon
780782 }
781783 }
782- document . addEventListener ( 'fullscreenchange' , handleFullscreenChange ) ;
783- document . addEventListener ( 'webkitfullscreenchange' , handleFullscreenChange ) ;
784- document . addEventListener ( 'mozfullscreenchange' , handleFullscreenChange ) ;
785- document . addEventListener ( 'MSFullscreenChange' , handleFullscreenChange ) ;
786784
787785 function handleFullscreenChange ( ) {
788786 var iconCode = document . querySelector ( '#FullScrIcon' ) ;
789- count = document . fullscreenElement || document . webkitFullscreenElement || document . mozFullScreenElement || document . msFullscreenElement ? 1 : 0 ;
790- iconCode . textContent = count ? '\ue5d1' : '\ue5d0' ;
787+ // Update fullscreen icon based on actual fullscreen state.
788+ // This removes the need for a separate state variable and
789+ // prevents incorrect icon state when fullscreen is toggled
790+ // outside the button (e.g., ESC key).
791+ var isFullscreen =
792+ document . fullscreenElement ||
793+ document . webkitFullscreenElement ||
794+ document . mozFullScreenElement ||
795+ document . msFullscreenElement ;
796+
797+ iconCode . textContent = isFullscreen ? '\ue5d1' : '\ue5d0' ;
791798 }
799+
800+ document . addEventListener ( 'fullscreenchange' , handleFullscreenChange ) ;
801+ document . addEventListener ( 'webkitfullscreenchange' , handleFullscreenChange ) ;
802+ document . addEventListener ( 'mozfullscreenchange' , handleFullscreenChange ) ;
803+ document . addEventListener ( 'MSFullscreenChange' , handleFullscreenChange ) ;
792804 </ script >
793805
794806 < script >
866878
867879</ body >
868880
869- </ html >
881+ </ html >
0 commit comments