<p>This color scheme is just temporary, for testing the cursor and annotations on a variaty of background colors</p>
<form action="#" method="get">
<p>HTML view. Changes here propagate when you remove your cursor (press tab or click outside)<br><textarea name="in" id="in">
- <script>console.log("this code should not run in the editor")</script>
- <!-- comments are preserved -->
- <style>h1 { color: #fdf; }</style>
+<script>console.log("this code should not run in the editor")</script>
+<!-- comments are preserved including whitespace -->
+<style>
+ h1 { color: #fdf; }
+</style>
<H1 style="padding: 0; margin: 0 0 7px 0">Headline!</h1>
<div>SVG works: <svg style="display: inline-block; vertical-align: bottom"xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 55 55"><path d="M27.5 0l6.57 19.87 20.93.11-16.868 12.39 6.364 19.938L27.5 40.094 10.504 52.308l6.364-19.938L0 19.98l20.93-.11z" overflow="visible" fill-rule="evenodd"></path></svg></div>
}
function is_display_block (el) {
- if (el.currentStyle != null) {
- return el.currentStyle.display === 'block'
- } else {
+ if (el.nodeType === 1) {
return window.getComputedStyle(el, null).getPropertyValue('display') === 'block'
}
+ return false
}
// Pass return value from dom event handlers to this.
break
case 'tag':
if (c.name === 'script' || c.name === 'object' || c.name === 'iframe' || c.name === 'link') {
- // TODO put placeholders instead
- remove.unshift(i) // add to beginning so they are removed last first
+ // TODO make some placeholders visible
+ // problematic to have different type than c: c.el = parent.ownerDocument.createComment(c.name + ' tag here')
+ c.el = parent.ownerDocument.createElement(c.name)
+ // correct type, but empty and no attributes
continue
}
if (c.namespace === 'svg') {
}
}
}
- // these are in reverse order so we remove highest indexes first
- for (i = 0; i < remove.length; i++) {
- index = remove[i]
- tree.splice(index, 1)
- }
}
function traverse_tree (tree, cb) {
if (block) {
cb(null)
}
- if (n.children.length > 0) {
+ if (n.children.length > 0 && plaintext_elements[n.name] == null) {
iterate(n.children, cb)
}
if (block) {
is_br = true
}
is_text = false
- if (n.el.currentStyle != null) {
- cs = n.el.currentStyle
- whitespace = cs['white-space']
- display = cs['display']
- position = cs['position']
- float = cs['float']
- visibility = cs['visibility']
- } else {
- cs = this.iframe.contentWindow.getComputedStyle(n.el, null)
- whitespace = cs.getPropertyValue('white-space')
- display = cs.getPropertyValue('display')
- position = cs.getPropertyValue('position')
- float = cs.getPropertyValue('float')
- visibility = cs.getPropertyValue('visibility')
- }
+ cs = this.iframe.contentWindow.getComputedStyle(n.el, null)
+ whitespace = cs.getPropertyValue('white-space')
+ display = cs.getPropertyValue('display')
+ position = cs.getPropertyValue('position')
+ float = cs.getPropertyValue('float')
+ visibility = cs.getPropertyValue('visibility')
if (n.name === 'textarea') {
inner_flags.pre_ish = true
} else {