我尝试根据选择点拆分HTML部分。例如,假设我有:
<table>
<tr><td> one </td></tr>
<tr><td> two </td></tr>
<tr><td> tree </td></tr>
</table>
现在,如果用户使用鼠标选择two
并单击拆分按钮,我应该:
<table>
<tr><td> one </td></tr>
</table>
和
<table>
<tr><td> two </td></tr>
<tr><td> tree </td></tr>
</table>
它也可以出现在任何其他元素上(P
,div
,...),以及任何嵌套元素。
我尝试了以下C#代码:
IHTMLDocument2 doc =
webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLBodyElement body = doc.body as IHTMLBodyElement;
if (doc.selection != null)
{
if (doc.selection.type == "Text")
{
range = doc.selection.createRange() as IHTMLTxtRange;
range.moveEnd("textedit");
// NOW range.htmlText gives me the second part,
// however I don't know how to extract it from the section
// and remain the first part
}
}
现在range.htmlText完全给了我第二个片段(带有父标签),但是我不知道如何从该部分中提取它并留下第一个片段?! execCommand("cut")
可以完成这项工作,但是如果选择跨越几个表格行,那些技巧就不起作用。
或其他任何解决方案?