comparison jslib/urweb.js @ 600:d1cce194180d

Do proper insertion of dynamic content within nested DOM containers
author Adam Chlipala <adamc@hcoop.net>
date Sun, 11 Jan 2009 10:41:38 -0500
parents 4c2c740c6931
children 7c3c21eb5b4c
comparison
equal deleted inserted replaced
599:889dc9fceb3a 600:d1cce194180d
32 reZ(); 32 reZ();
33 33
34 return s; 34 return s;
35 } 35 }
36 36
37 function myParent() {
38 var pos = document;
39
40 while (pos.lastChild && pos.lastChild.nodeType == 1)
41 pos = pos.lastChild;
42
43 return pos.parentNode;
44 }
45
37 function dyn(s) { 46 function dyn(s) {
38 var x = document.createElement("span"); 47 var x = document.createElement("span");
39 x.innerHTML = s.v; 48 x.innerHTML = s.v;
40 document.body.appendChild(x); 49 myParent().appendChild(x);
41 s.h = cons(function() { x.innerHTML = s.v }, s.h); 50 s.h = cons(function() { x.innerHTML = s.v }, s.h);
42 } 51 }
43 52
44 function inp(t, s) { 53 function inp(t, s) {
45 var x = document.createElement(t); 54 var x = document.createElement(t);
46 x.value = s.v; 55 x.value = s.v;
47 document.body.appendChild(x); 56 myParent().appendChild(x);
48 s.h = cons(function() { x.value = s.v }, s.h); 57 s.h = cons(function() { x.value = s.v }, s.h);
49 x.onkeyup = function() { sv(s, x.value) }; 58 x.onkeyup = function() { sv(s, x.value) };
50 } 59 }
51 60
52 function eh(x) { 61 function eh(x) {