• 分享 WebBrowser显示Html内容3点细节技巧,解决刷新后空白


    直接显示Html内容,不像直接导航网址容易处理:

    问题:按微软的控件属性提示,可以用WebBrowser.DocumentText 属性赋值 ,但是这种赋值,只是首次有效,后续切换都没啥作用。

    下面给出自己追求摸索的两点技巧:

    1:通过WebBrowser.Document.Write(html)方法来输出html内容显示。

    由于WebBrowser 需要经历几个事件后才会显示,直接输出是不行的,为此,需要有点技巧的使用:

    wbShowBlog.Navigate("about:blank");
    while (wbShowBlog.ReadyState != WebBrowserReadyState.Complete)
    {
         Application.DoEvents();
    }
    wbShowBlog.Document.Write(html) 
    

      

    先导航到空白页,再输出需要显示的Html内容,用这个方法解决。

    2:二次显示内容,应该用节点替换,而不是重新输出内容

    一开始都调用输出显示,结果切换内容时,偶尔会出现切换后不显示新内容的问题。

    在多次反复的试验中,反反复复,时好时坏之后,决定想法处理掉这个问题,为此,本人又想到另一种解决的方式:

    if (wbShowBlog.Document == null)
    {
     string html = htmlTemplate.Replace("{0}", blogText);
     wbShowBlog.Navigate("about:blank");
     while (wbShowBlog.ReadyState != WebBrowserReadyState.Complete)
     {
        Application.DoEvents();
       }
       wbShowBlog.Document.Write(html);//这里有问题,明天处理。
    
    }
    else
    {
           wbShowBlog.Document.GetElementById("weibospiritBody").InnerHtml = blogText;
    }
    

      

    第二次时,通过直接切换内部某节点的InnerHtml来显示内容,而不是重新对浏览器赋值,通过这个方式,完美的解决了这个问题。

    3:Document.Write(html) 带iframe时,解决iframe默认不显示的神秘问题

    终于,直到某天,新的策略变化,内容下方的广告,不是直接显示内容,而且想套一个iframe来显示网页地址,这时候又发现新问题:

    通过Document.Write出来的iframe竟然显示不出来,折腾过后,发现刷新一下浏览器可以显示出来,为此,又补上一招,变成:

    if (wbShowBlog.Document == null)   
    {
       string html = htmlTemplate.Replace("{0}", blogText);
       wbShowBlog.Navigate("about:blank");
       while (wbShowBlog.ReadyState != WebBrowserReadyState.Complete)
       {
          Application.DoEvents();
       }
        wbShowBlog.Document.Write(html);//这里有问题,明天处理。
        wbShowBlog.Refresh();//不刷新一下,Iframe显示不出来。
    }
    else
    {
        wbShowBlog.Document.GetElementById("weibospiritBody").InnerHtml = blogText;
    }
    

      

    就是多一行刷新,解决了这个问题,以上就是3个细节点。

    分享自:http://www.cnblogs.com/cyq1162/archive/2012/03/27/2419655.html

  • 相关阅读:
    为什么 Redis 重启后没有正确恢复之前的内存数据
    Redis的启动过程
    Redis 如何保持和MySQL数据一致
    redis集群节点宕机
    mysql 数据库管理
    mysqladmin 命令详解
    MySQL 编译安装
    mysql 数据库简介
    xtrabackup安装部署(二)
    Non-negative Partial Sums(单调队列)
  • 原文地址:https://www.cnblogs.com/jameslif/p/3905387.html
Copyright © 2020-2023  润新知