diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js index e3daa8c4d1..3de9447879 100644 --- a/src/js/_enqueues/admin/common.js +++ b/src/js/_enqueues/admin/common.js @@ -2129,8 +2129,8 @@ $( function( $ ) { /** * Freeze animated plugin icons when reduced motion is enabled. * - * When the user has enabled the 'prefers-reduced-motion' setting, this module - * stops animations for all GIFs on the page with the class 'plugin-icon' or + * When the user has enabled the 'prefers-reduced-motion' setting, this module + * stops animations for all GIFs on the page with the class 'plugin-icon' or * plugin icon images in the update plugins table. * * @since 6.4.0 @@ -2156,7 +2156,7 @@ $( function( $ ) { var width = img.width; var height = img.height; var canvas = document.createElement( 'canvas' ); - + // Set canvas dimensions. canvas.width = width; canvas.height = height; @@ -2219,23 +2219,27 @@ $( function( $ ) { // Listen for jQuery AJAX events. ( function( $ ) { - $( document ).ajaxComplete( function( event, xhr, settings ) { - // Check if this is the 'search-install-plugins' request. - if ( settings.data && settings.data.includes( 'action=search-install-plugins' ) ) { - // Recheck if the user prefers reduced motion. - if ( window.matchMedia ) { - var mediaQuery = window.matchMedia( '(prefers-reduced-motion: reduce)' ); - if ( mediaQuery.matches ) { - pub.freezeAll(); - } - } else { - // Fallback for browsers that don't support matchMedia. - if ( true === priv.pauseAll ) { - pub.freezeAll(); + if ( window.pagenow === 'plugin-install' ) { + // Only listen for ajaxComplete if this is the plugin-install.php page. + $( document ).ajaxComplete( function( event, xhr, settings ) { + + // Check if this is the 'search-install-plugins' request. + if ( settings.data && typeof settings.data === 'string' && settings.data.includes( 'action=search-install-plugins' ) ) { + // Recheck if the user prefers reduced motion. + if ( window.matchMedia ) { + var mediaQuery = window.matchMedia( '(prefers-reduced-motion: reduce)' ); + if ( mediaQuery.matches ) { + pub.freezeAll(); + } + } else { + // Fallback for browsers that don't support matchMedia. + if ( true === priv.pauseAll ) { + pub.freezeAll(); + } } } - } - } ); + } ); + } } )( jQuery ); // Expose public methods.