防止WebBrowser控件自动添加标记

本文关键字:标记 添加 WebBrowser 控件 防止 | 更新日期: 2023-09-27 18:17:06

我使用WebBrowser控件,并在里面添加文本,如:

some text https://www.example.com some text.

这是我的代码的方式,我添加文本和启用web浏览器编辑内容:

public partial class Form1 : Form
{
    private HTMLBody _body;
    public Form1()
    {
        InitializeComponent();
        webBrowser1.Navigate("about:blank");
    }
    private void webBrowser1_DocumentCompleted(object sender, 
        WebBrowserDocumentCompletedEventArgs e)
    {
        _body = ((HTMLBody)((HTMLDocument)webBrowser1.Document.DomDocument).body);
        _body.contentEditable = true.ToString();
        _body.innerHTML = "some text https://www.example.com some text";
    }
}

如果我运行它并改变了部分链接(为键入其他东西而不是'example.com'并失去焦点),那么它会自动在我的链接周围添加标签<a>。你可以在innerHTML属性中看到它。但这对我来说是错误的。

有办法避免这种行为吗?非常感谢!

防止WebBrowser控件自动添加<A>标记

您可以在文档中关闭自动检测url。为此,在DocumentCompleted evnet中,在为body设置新内容后,添加这行代码:

webBrowser1.Document.ExecCommand("AutoUrlDetect", false, false);

也可以使内容可编辑而不添加mshtml.dll的引用。要做到这一点,只需使用:

this.webBrowser1.DocumentText = @"<HTML><BODY contentEditable=""true""></BODY></HTML>";