我开发了一个Windows窗体应用程序,其中添加了一个Web浏览器控件。 在该Web浏览器控件中,我添加了如下所示的html内容
<iframe src="pageURL.aspx?ref=iframe" allowtransparency="true" height="310px" width="300px" border="0px" frameBorder="0" scrolling="no" style="overflow-x:hidden;"/>
要为网络浏览器分配以上内容,我使用以下代码
wbflyout.Navigate("about:blank");
wbflyout.DocumentText = string.Empty;
wbflyout.Document.OpenNew(true);
wbflyout.Document.Write(dynamic HTML Content);
wbflyout.Refresh();
我尝试将此内容分配给Web浏览器主体,如下所示 -
wbflyout.Document.Body.InnerHtml = (dynamic HTML Content);
当表单加载空白屏幕时显示。
为什么会这样?如果我只动态加载简单的标题或文本,它就会有效。
答案 0 :(得分:0)
我会尝试回答清新和操纵,因为我认为这是你所追求的信息。
刷新:要进行刷新,请尝试使用WebBrowser控件上的DocumentText属性。
当您想要操作内容时,最好使用此属性 使用字符串在WebBrowser控件中显示的HTML页面 加工工具。例如,您可以使用此属性进行加载 数据库中的页面或使用正则表达式分析页面。 设置此属性时,WebBrowser会自动控制 在加载指定文本之前导航到about:blank URL。 这意味着Navigating,Navigated和DocumentCompleted 设置此属性时会发生事件,以及Url的值 财产不再有意义。 (来源,MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext(v=vs.110).aspx)
e.g:
webBrowser.DocumentText = "<html></html>";
其中"<html></html>"
是您的动态HTML,或者例如您的iframe。
操作HTML : 接下来,如果您想要操作HTML本身并刷新它,那么我建议您使用HTML特定库来帮助您操作HTML。一个例子是HTML Agility Pack:http://htmlagilitypack.codeplex.com/ - 也可以在NuGet上获得(NuGet AgilityPack Url:https://www.nuget.org/packages/HtmlAgilityPack)。然后在操作它之后,您可以再次使用该DocumentText属性来加载/刷新HTML。