iframe标记未加载到Windows窗体的Web浏览器控件中

时间:2014-01-10 08:42:26

标签: c# .net winforms

我开发了一个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);

当表单加载空白屏幕时显示。

为什么会这样?如果我只动态加载简单的标题或文本,它就会有效。

1 个答案:

答案 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 Packhttp://htmlagilitypack.codeplex.com/ - 也可以在NuGet上获得(NuGet AgilityPack Url:https://www.nuget.org/packages/HtmlAgilityPack)。然后在操作它之后,您可以再次使用该DocumentText属性来加载/刷新HTML。