从Web浏览器中选择粘贴HTML的问题

时间:2010-06-04 16:10:13

标签: c# html browser range

我正在使用.NET webbrowser控件组合一个WYSIWYG html编辑器。我已经设法将用于在光标位置插入表格的代码拼凑在一起。但是我现在正试图做一些不同的事情。

我需要做的是在表格行周围插入一个和html注释。我已经设法编写了代码,从光标位置查看父元素以查找curor所在的表行。问题是当我尝试在范围内使用pastHtml方法时,它会引发异常没有详细说明为什么失败!。

下面列出的代码。

    private void OnTest(object sender, EventArgs e)
    {
        try
        {
            IHTMLDocument2 doc = wbDesign.Document.DomDocument as IHTMLDocument2;
            IHTMLSelectionObject currentSelection = doc.selection;
            if (currentSelection != null)
            {
                IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
                bool foundRow = false;
                IHTMLElement parentElement = null;
                parentElement = range.parentElement();
                if ("TR" == parentElement.tagName) foundRow = true;
                while (!foundRow)
                {
                    if (null == parentElement.parentElement) break;
                    parentElement = parentElement.parentElement;
                    if ("TR" == parentElement.tagName) foundRow = true;
                }

                if (foundRow)
                {
                    currentSelection.clear();
                    range.moveToElementText(parentElement);
                    range.pasteHTML("test");
                }
                else
                {
                    MessageBox.Show("Unable to find table row from selection point.");
                }
            }
        }
        catch (Exception error)
        {
            MessageBox.Show(error.Message);
        }
    }

0 个答案:

没有答案