@iframe = domify @outer_idoc, iframe: {}
@iframe.onload = =>
@init()
+ setTimeout (=> @init()), 200 # firefox never fires this onload
@outer_idoc.body.appendChild(
domify @outer_idoc, div: id: 'wrap1', children: [
domify @outer_idoc, div: id: 'wrap2', children: [
@outer_iframe.setAttribute 'style', outer_iframe_style
css = outer_css w: outer_bounds.w, h: outer_bounds.h
outer_wrap.appendChild @outer_iframe
- init: -> # called by @iframe's onload
+ init: -> # called by @iframe's onload (or timeout on firefox)
+ return if @initialized # ignore timeout for non-broken browsers
@idoc = @iframe.contentDocument
@overlay.onclick = (e) =>
return @onclick e
@in_el.value = dom_to_html @tree
@in_el.onchange = =>
@load_html @in_el.value
+ @iframe.style.height = "0"
+ @iframe.style.height = "#{@idoc.body.scrollHeight}px"
kill_cursor: -> # remove it, forget where it was
if @cursor_visible
@cursor_el.parentNode.removeChild @cursor_el