<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>reveal.js - Test Iframe Backgrounds</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 data-background-iframe="https://revealjs.com">1</section> <section data-background-iframe="https://revealjs.com">2</section> <section data-background-iframe="https://revealjs.com" data-preload> 3 </section> <section data-background-iframe="https://revealjs.com">4</section> <section data-background-iframe="https://revealjs.com">5</section> <section data-background-iframe="https://revealjs.com">6</section> </div> </div> <script src="../dist/reveal.js"></script> <script> QUnit.config.testTimeout = 30000; Reveal.initialize({ viewDistance: 3 }).then(() => { function getIframe(index) { return document .querySelectorAll(".slide-background") [index].querySelector("iframe"); } QUnit.module("Iframe"); QUnit.test("Using default settings", function (assert) { Reveal.slide(0); assert.strictEqual( getIframe(1).hasAttribute("src"), false, "not preloaded when within viewDistance" ); Reveal.slide(1); assert.strictEqual( getIframe(1).hasAttribute("src"), true, "loaded when slide becomes visible" ); Reveal.slide(0); assert.strictEqual( getIframe(1).hasAttribute("src"), false, "unloaded when slide becomes invisible" ); }); QUnit.test("Using data-preload", function (assert) { Reveal.slide(1); assert.strictEqual( getIframe(2).hasAttribute("src"), true, "preloaded within viewDistance" ); assert.strictEqual( getIframe(1).hasAttribute("src"), true, "loaded when slide becomes visible" ); Reveal.slide(0); assert.strictEqual( getIframe(3).hasAttribute("src"), false, "unloads outside of viewDistance" ); }); QUnit.test("Using preloadIframes: true", function (assert) { Reveal.configure({ preloadIframes: true }); Reveal.slide(1); assert.strictEqual( getIframe(0).hasAttribute("src"), true, "preloaded within viewDistance" ); assert.strictEqual( getIframe(1).hasAttribute("src"), true, "preloaded within viewDistance" ); assert.strictEqual( getIframe(2).hasAttribute("src"), true, "preloaded within viewDistance" ); }); QUnit.test("Using preloadIframes: false", function (assert) { Reveal.configure({ preloadIframes: false }); Reveal.slide(0); assert.strictEqual( getIframe(1).hasAttribute("src"), false, "not preloaded within viewDistance" ); assert.strictEqual( getIframe(2).hasAttribute("src"), false, "not preloaded within viewDistance" ); Reveal.slide(1); assert.strictEqual( getIframe(1).hasAttribute("src"), true, "loaded when slide becomes visible" ); }); }); </script> </body> </html>