Mercurial > urweb
diff lib/js/urweb.js @ 902:4b9f1de2c647
dlist add and delete both working in Iceape and Konqueror
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 06 Aug 2009 14:39:03 -0400 |
parents | f17638dd3080 |
children | 63114a2e5075 |
line wrap: on
line diff
--- a/lib/js/urweb.js Thu Aug 06 14:24:40 2009 -0400 +++ b/lib/js/urweb.js Thu Aug 06 14:39:03 2009 -0400 @@ -269,13 +269,15 @@ x.sources = null; x.closures = null; - var child = null; + var firstChild = null; x.recreate = function(v) { for (var ls = x.closures; ls; ls = ls.next) freeClosure(ls.data); - if (child) { + var next; + for (var child = firstChild; child && child != x; child = next) { + next = child.nextSibling; if (child.getElementsByTagName) { var arr = child.getElementsByTagName("script"); for (var i = 0; i < arr.length; ++i) { @@ -305,19 +307,22 @@ var table = x.parentNode; var arr = dummy.getElementsByTagName("tbody"); + firstChild = null; if (arr.length > 0) { var tbody = arr[0], next; + firstChild = document.createElement("script"); + table.insertBefore(firstChild, x); for (var node = tbody.firstChild; node; node = next) { next = node.nextSibling; - table.appendChild(node); + table.insertBefore(node, x); } } } else { - child = document.createElement("span"); - child.innerHTML = html; - runScripts(child); + firstChild = document.createElement("span"); + firstChild.innerHTML = html; + runScripts(firstChild); if (x.parentNode) - x.parentNode.insertBefore(child, x); + x.parentNode.insertBefore(firstChild, x); } };