Winforms WebControl - 如何防止链接转义

本文关键字:链接 转义 何防止 WebControl Winforms | 更新日期: 2023-09-27 18:33:49

我正在Winforms .NET 4.0项目中开发,使用WebControl作为所见即所得的编辑器 - 使用Matt Groves开发的YARTE编辑器工作。

我正在尝试添加一个锚标签并将 href 属性设置为以下路径:

var path = http://someurl.aspx?param1="val1"&param2="val2"&param3="youGetTheIdea"

我尝试了几种方法;当我尝试将 url 写入文档时,我总是得到 HTML 转义的 & 符号:

http://someurl.aspx?param1="this"&param2="doesnt"&param3="work"

我尝试过不成功的方法:

  1. 创建链接

    webBrowser.ExecCommand("CreateLink", false, path)
    
  2. 创建 HTML 并将其粘贴到:

    var htmlDocument2 = args.Document.DomDocument as IHTMLDocument2;
    if (htmlDocument2 == null) return;
    var range = htmlDocument2.selection.createRange() as IHTMLTxtRange;
    if (range == null) return;
    range.pasteHTML(string.Format(path, range.text));
    
  3. 创建一个文件并将 Web 浏览器定向到该文件:

    // assume the links are already inserted, but aren't right.
    var textWithBadLinks = webBrowser.DocumentText;
    var betterText = UseRegexToReplaceBadLinkText(textWithBadLinks);
    using (StreamWriter outfile =new StreamWriter(@"c:'test.html"))
    {
      outfile.Write(betterText);
    }
    webBrowser.Url= new Uri(@"c:'test.html");
    
  4. 创建流并将 Web 浏览器定向到它:

    // same as above, but instead of the URL, use the DocumentStream:
    webBrowser.DocumentStream = new StreamWriter(@c:'test.html);
    
  5. 导航到文件:

    webBrowser.Navigate(new Uri(@"c:'test.html"))
    

无论我选择哪种方法,& 符号都会被转义,链接不起作用。

提前感谢您的任何帮助。

Winforms WebControl - 如何防止链接转义

从技术上讲,XHTML 要求 & 是有效的。参见:XHTML 和 & (& 符号) 编码