<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>reveal.js - Test Iframes</title> <link rel="stylesheet" href="../dist/reveal.css" /> <link rel="stylesheet" href="../node_modules/qunit/qunit/qunit.css" /> <script src="../node_modules/qunit/qunit/qunit.js"></script> </head> <body style="overflow: auto"> <div id="qunit"></div> <div id="qunit-fixture"></div> <div class="reveal" style="display: none"> <div class="slides"> <section>1</section> <section>2</section> <section> <iframe class="default-iframe" data-src="#"></iframe> <iframe class="preload-iframe" data-src="#" data-preload></iframe> </section> </div> </div> <script src="../dist/reveal.js"></script> <script> QUnit.config.testTimeout = 30000; Reveal.initialize({ viewDistance: 2 }).then(() => { var defaultIframe = document.querySelector(".default-iframe"), preloadIframe = document.querySelector(".preload-iframe"); QUnit.module("Iframe"); QUnit.test("Using default settings", function (assert) { Reveal.slide(1); assert.strictEqual( defaultIframe.hasAttribute("src"), false, "not preloaded when within viewDistance" ); Reveal.slide(2); assert.strictEqual( defaultIframe.hasAttribute("src"), true, "loaded when slide becomes visible" ); Reveal.slide(1); assert.strictEqual( defaultIframe.hasAttribute("src"), false, "unloaded when slide becomes invisible" ); }); QUnit.test("Using data-preload", function (assert) { Reveal.slide(1); assert.strictEqual( preloadIframe.hasAttribute("src"), true, "preloaded within viewDistance" ); Reveal.slide(2); assert.strictEqual( preloadIframe.hasAttribute("src"), true, "loaded when slide becoems visible" ); Reveal.slide(0); assert.strictEqual( preloadIframe.hasAttribute("src"), false, "unloads outside of viewDistance" ); }); QUnit.test("Using preloadIframes: true", function (assert) { Reveal.configure({ preloadIframes: true }); Reveal.slide(1); assert.strictEqual( defaultIframe.hasAttribute("src"), true, "preloaded within viewDistance" ); assert.strictEqual( preloadIframe.hasAttribute("src"), true, "preloaded within viewDistance" ); Reveal.slide(2); assert.strictEqual( defaultIframe.hasAttribute("src"), true, "loaded when slide becomes visible" ); assert.strictEqual( preloadIframe.hasAttribute("src"), true, "loaded when slide becomes visible" ); }); QUnit.test("Using preloadIframes: false", function (assert) { Reveal.configure({ preloadIframes: false }); Reveal.slide(0); assert.strictEqual( defaultIframe.hasAttribute("src"), false, "not preloaded within viewDistance" ); assert.strictEqual( preloadIframe.hasAttribute("src"), false, "not preloaded within viewDistance" ); Reveal.slide(2); assert.strictEqual( defaultIframe.hasAttribute("src"), true, "loaded when slide becomes visible" ); assert.strictEqual( preloadIframe.hasAttribute("src"), true, "loaded when slide becomes visible" ); }); }); </script> </body> </html>