Kaynağa Gözat

prevent iframes from auto-focusing and disabling keyboard nav, controllable via preventIframeAutoFocus

Hakim El Hattab 1 hafta önce
ebeveyn
işleme
c9d6785df2

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/reveal.esm.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/reveal.esm.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/reveal.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/reveal.js.map


+ 3 - 0
js/config.js

@@ -168,6 +168,9 @@ export default {
 	// - false:  All iframes with data-src will be loaded only when visible
 	preloadIframes: null,
 
+	// Prevent embedded iframes from automatically focusing on themselves
+	preventIframeAutoFocus: true,
+
 	// Can be used to globally disable auto-animation
 	autoAnimate: true,
 

+ 18 - 0
js/controllers/slidecontent.js

@@ -468,6 +468,24 @@ export default class SlideContent {
 
 		let iframe = event.target;
 
+		if( this.Reveal.getConfig().preventIframeAutoFocus ) {
+
+			let elapsed = 0;
+			const interval = 100;
+			const maxTime = 1000;
+			const checkFocus = () => {
+				if( document.activeElement === iframe ) {
+					document.activeElement.blur();
+				} else if( elapsed < maxTime ) {
+					elapsed += interval;
+					setTimeout( checkFocus, interval );
+				}
+			};
+
+			setTimeout( checkFocus, interval );
+
+		}
+
 		if( iframe && iframe.contentWindow ) {
 
 			let isAttachedToDOM = !!closest( event.target, 'html' ),

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor