summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2014-04-21 12:09:58 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2014-04-21 12:09:58 -0400
commiteec1cc7a37e04f9c4195ede0233ed773f2e964a9 (patch)
tree4371c9a659e2c168f1c573831e9ebe42a4fd7397
parent1e7619137f25ceb0cef59100bc5a41ffc21a1412 (diff)
Change <active> to avoid generating an empty <span> for empty content
-rw-r--r--lib/js/urweb.js8
-rw-r--r--tests/activeEmpty.ur5
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js
index 2e350378..fe628130 100644
--- a/lib/js/urweb.js
+++ b/lib/js/urweb.js
@@ -1009,8 +1009,6 @@ function active(s) {
if (suspendScripts)
return;
- var span = document.createElement("span");
- addNode(span);
var ms = maySuspend;
maySuspend = false;
try {
@@ -1020,7 +1018,11 @@ function active(s) {
throw e;
}
maySuspend = ms;
- setInnerHTML(span, html);
+ if (html != "") {
+ var span = document.createElement("span");
+ addNode(span);
+ setInnerHTML(span, html);
+ }
}
function input(x, s, recreate, type, name) {
diff --git a/tests/activeEmpty.ur b/tests/activeEmpty.ur
new file mode 100644
index 00000000..4c089899
--- /dev/null
+++ b/tests/activeEmpty.ur
@@ -0,0 +1,5 @@
+fun main () : transaction page = return <xml><body>
+ <active code={alert "Howdy, neighbor!"; return <xml/>}/>
+ <hr/>
+ <active code={return <xml>This one <b>ain't</b> empty.</xml>}/>
+</body></xml>