Mercurial > urweb
diff lib/js/urweb.js @ 2012:2b2d07946e65
Fix dynClass for non-<body> contexts
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sun, 04 May 2014 12:33:44 -0400 |
parents | 93ff76058825 |
children | 534577e429e1 |
line wrap: on
line diff
--- a/lib/js/urweb.js Sat May 03 07:59:45 2014 -0400 +++ b/lib/js/urweb.js Sun May 04 12:33:44 2014 -0400 @@ -1113,7 +1113,7 @@ return x; } -function dynClass(html, s_class, s_style) { +function dynClass(pnode, html, s_class, s_style) { if (suspendScripts) return; @@ -1121,7 +1121,7 @@ html = flatten(htmlCls, html); htmlCls = htmlCls.v; - var dummy = document.createElement("body"); + var dummy = document.createElement(pnode); suspendScripts = true; dummy.innerHTML = html; suspendScripts = false; @@ -1152,23 +1152,23 @@ if (s_style) { var htmlCls2 = s_class ? null : htmlCls; - var x = document.createElement("script"); - x.dead = false; - x.signal = s_style; - x.sources = null; - x.closures = htmlCls2; + var y = document.createElement("script"); + y.dead = false; + y.signal = s_style; + y.sources = null; + y.closures = htmlCls2; - x.recreate = function(v) { - for (var ls = x.closures; ls != htmlCls2; ls = ls.next) + y.recreate = function(v) { + for (var ls = y.closures; ls != htmlCls2; ls = ls.next) freeClosure(ls.data); var cls = {v : null}; html.style.cssText = flatten(cls, v); - x.closures = concat(cls.v, htmlCls2); + y.closures = concat(cls.v, htmlCls2); } - html.appendChild(x); - populate(x); + html.appendChild(y); + populate(y); } }