This question doesn't have anything to do with Greasemonkey, but I'm
going to ask it here anyway since I know there are a lot of Javascript
gurus here :-).<br>
<br>
Playtpus has an &quot;Insert HTML&quot; function that works by creating a
&lt;DIV&gt;, setting innerHTML to whatever the user has entered, and
then inserting the &lt;DIV&gt; into the DOM tree at the appropriate
spot.&nbsp; This works fine in most situations, but fails if you try to
do something like insert a new &lt;TD&gt; in a table.&nbsp; The
&lt;DIV&gt; wrapping the new HTML breaks the insert -- you end up with
a &lt;DIV&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/DIV&gt; in the table instead of
a &lt;TD&gt;&lt;/TD&gt;.<br>
<br>
So I thought to fix this by creating the &lt;DIV&gt; as before, and
then grabbing all the child nodes of the &lt;DIV&gt;, promoting them up
a level in the DOM tree, and then deleting the &lt;DIV&gt;.&nbsp; This
almost works.<br>
<br>
The problem is that when you create a &lt;DIV&gt; node and set
innerHTML to something like &quot;&lt;TD&gt;foobar&lt;/TD&gt;&quot; you don't
actually end up with &lt;TD&gt; child nodes.&nbsp; Apparently the
parser that converts the innerHTML to DOM recognizes that &lt;TD&gt;
inside &lt;DIV&gt; is invalid and never creates the node.&nbsp; So
promoting up doesn't work because there's no &lt;TD&gt; node to promote.<br>
<br>
So my question is whether anyone has any good solutions to this
problem, or in general how to take text HTML and insert it into a DOM
tree.&nbsp; Any help will be much appreciated, thanks!<br>
<br>
-- Scott<br>