#= require views/pages/base class app.views.JqueryPage extends app.views.BasePage @demoClassName: '_jquery-demo' afterRender: -> # Prevent jQuery Mobile's demo iframes from scrolling the page for iframe in @findAllByTag 'iframe' iframe.style.display = 'none' $.on iframe, 'load', @onIframeLoaded @runExamples() onIframeLoaded: (event) => event.target.style.display = '' $.off event.target, 'load', @onIframeLoaded return runExamples: -> for el in @findAllByClass 'entry-example' try @runExample el catch return runExample: (el) -> source = el.getElementsByClassName('syntaxhighlighter')[0] return unless source and source.innerHTML.indexOf('!doctype') isnt -1 unless iframe = el.getElementsByClassName(@constructor.demoClassName)[0] iframe = document.createElement 'iframe' iframe.className = @constructor.demoClassName iframe.width = '100%' iframe.height = 200 el.appendChild(iframe) doc = iframe.contentDocument doc.write @fixIframeSource(source.textContent) doc.close() return fixIframeSource: (source) -> source = source.replace '"/resources/', '"https://api.jquery.com/resources/' # attr(), keydown() source = source.replace '', """ """ source.replace /