Quellcode durchsuchen

Check before calling blur on activeElement.

It's possible for slides to be in a situation where the last clicked thing was an SVG before the tab/window loses focus. When returning, `.blur()` is called on the previously-active element, but can result in an exception.

This protects against that and will only call `.blur()` when `document.activeElement` supports it.
Jordan Hofker vor 10 Jahren
Ursprung
Commit
76c5726c04
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      js/reveal.js

+ 4 - 1
js/reveal.js

@@ -3872,7 +3872,10 @@
 		// If, after clicking a link or similar and we're coming back,
 		// focus the document.body to ensure we can use keyboard shortcuts
 		if( isHidden === false && document.activeElement !== document.body ) {
-			document.activeElement.blur();
+			// Not all elements support .blur() - SVGs among them.
+			if (typeof document.activeElement.blur === 'function') {
+				document.activeElement.blur();
+			}
 			document.body.focus();
 		}