diff --git a/theme/js/loadhtmlslides.js b/theme/js/loadhtmlslides.js new file mode 100644 index 0000000000000000000000000000000000000000..8f92a6ca7efd208b03d973d9ff60ce7d004553c2 --- /dev/null +++ b/theme/js/loadhtmlslides.js @@ -0,0 +1,41 @@ +// Modified from markdown.js from Hakim to handle external html files +(function () { + /*jslint loopfunc: true, browser: true*/ + /*globals alert*/ + 'use strict'; + + var querySlidingHtml = function () { + var sections = document.querySelectorAll('[data-html]'), + section, j, jlen; + + for (j = 0, jlen = sections.length; j < jlen; j++) { + section = sections[j]; + + if (section.getAttribute('data-html').length) { + + var xhr = new XMLHttpRequest(), + url = section.getAttribute('data-html'), + cb = function () { + if (xhr.readyState === 4) { + if (xhr.status >= 200 && xhr.status < 300) { + section.innerHTML = xhr.responseText; + } else { + section.outerHTML = '<section data-state="alert">ERROR: The attempt to fetch ' + url + ' failed with the HTTP status ' + xhr.status + '. Check your browser\'s JavaScript console for more details.</p></section>'; + } + } + }; + + xhr.onreadystatechange = cb; + + xhr.open('GET', url, false); + try { + xhr.send(); + } catch (e) { + alert('Failed to get file' + url + '.' + e); + } + } + } + }; + + querySlidingHtml(); +})();