1

我正在开发一个 Winforms .NET 4.0 项目,使用 WebControl 作为 WYSIWYG 编辑器 - 使用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. 创建一个文件并将 webBrowser 定向到它:

    // 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. 创建一个流并将 webBrowser 定向到它:

    // 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"))
    

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

提前感谢您的任何帮助。

4

1 回答 1

1

从技术上讲,XHTML 要求 & 有效。请参阅:XHTML 和 &(与号)编码

于 2014-12-12T13:42:31.907 回答