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"¶m2="val2"¶m3="youGetTheIdea"
我尝试了几种方法;当我尝试将 url 写入文档时,我总是得到 HTML 转义的 & 符号:
http://someurl.aspx?param1="this"&param2="doesnt"&param3="work"
我尝试过不成功的方法:
创建链接
webBrowser.ExecCommand("CreateLink", false, path)
创建 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));
创建一个文件并将 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");
创建流并将 Web 浏览器定向到它:
// same as above, but instead of the URL, use the DocumentStream: webBrowser.DocumentStream = new StreamWriter(@c:'test.html);
导航到文件:
webBrowser.Navigate(new Uri(@"c:'test.html"))
无论我选择哪种方法,& 符号都会被转义,链接不起作用。
提前感谢您的任何帮助。
从技术上讲,XHTML 要求 & 是有效的。参见:XHTML 和 & (& 符号) 编码