Skip to content

Commit 3e181d3

Browse files
committed
Administration: Prevent errors in wp-tooltip.js on browsers without popover support.
Add a feature gate so that the tooltip JS hides popover panels on browsers without popover support, and doesn't execute calls that can trigger errors. There are no browsers within the WordPress support matrix without popover support, but gating this feature gives users of older browsers a better experience with minimal change. Props wolf45, wildworks, adamsilverstein, joedolson. Fixes #65943. git-svn-id: https://develop.svn.wordpress.org/trunk@63543 602fd350-edb4-49c9-b593-d223f7449a82
1 parent ea146ac commit 3e181d3

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

‎src/js/_enqueues/wp/wp-tooltip.js‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
*/
99
(() => {
1010

11+
const supportsPopover = /** @type {boolean} */ ( Object.prototype.hasOwnProperty.call( HTMLElement.prototype, 'popover' ) );
12+
let hidePopover = false;
13+
if ( ! supportsPopover ) {
14+
hidePopover = true;
15+
}
16+
1117
const popovers = /** @type {NodeListOf<HTMLSpanElement>} */ ( document.querySelectorAll( '.wp-is-tooltip' ) );
1218

1319
/** @type {ReturnType<typeof setTimeout>} */
@@ -16,7 +22,11 @@
1622
popovers.forEach( function( popover ) {
1723
const trigger = /** @type {HTMLButtonElement|HTMLAnchorElement|null} */ ( popover.querySelector( '.wp-tooltip__toggle' ) );
1824
const panel = /** @type {HTMLSpanElement|null} */ ( popover.querySelector( 'span.wp-tooltip__bubble' ) );
25+
if ( hidePopover && panel ) {
26+
panel.classList.add( 'hidden' );
1927

28+
return;
29+
}
2030
if ( ! trigger || ! panel ) {
2131
return;
2232
}

0 commit comments

Comments
 (0)