【问题标题】:webbrowser does not display page until an event occurswebbrowser 在事件发生之前不显示页面
【发布时间】:2014-03-15 05:36:08
【问题描述】:

我在 Windows CE 设备上使用 .net compact framework webbrowser 控件。 .Net 应用程序在设备上以不同的线程运行 Web 服务器。 网络浏览器按照正常的浏览器功能与网络服务器交互。 问题是当页面被请求时,屏幕并不总是显示,直到有一些浏览器事件。

一个例子是如果我在页面脚本中放置了一个 Javascript alert(...) 语句。屏幕将空白,消息将显示,当您单击确定时,将显示整个页面

另一个例子是当用户导航时页面变为空白。单击屏幕上的任意位置,页面将显示。

看起来好像页面正在加载,但 webbrowser 控件被锁定并且在发生用户事件之前不会显示任何内容。

DocumentCompleted() 事件确实会触发,在我尝试过的那个事件中

        webBrowser.Invalidate();
        webBrowser.Update();
        webBrowser.Refresh();

但在用户用手写笔点击屏幕之前,页面不会显示。

【问题讨论】:

    标签: .net compact-framework webbrowser-control


    【解决方案1】:

    为了让代码显示需要一个事件,我将此代码放在页面加载的末尾。

    setTimeout(function(){
    window.scrollTo(0,0);
    }, 1);
    

    这解决了问题。

    【讨论】:

      【解决方案2】:

      使用 WebBrowser 控件的 DocumentCompleted 事件,如下所示:

      private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
      {
          // hack for Windows CE based devices in order to get the page load right
          webBrowser.Width--;
          webBrowser.Width++;
      }
      

      【讨论】:

      • 可能比我的 hack 更干净
      猜你喜欢
      • 1970-01-01
      • 2021-05-06
      • 2012-10-02
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多