webbrowser在事件发生之前不显示页面

时间:2014-03-15 05:36:08

标签: .net compact-framework webbrowser-control

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

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

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

似乎页面正在加载但是webbrowser控件已被锁定,并且在有用户事件之前不会显示任何内容。

DocumentCompleted()事件触发,在那个事件中我尝试了

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

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

2 个答案:

答案 0 :(得分:2)

确定需要一个事件才能显示代码我将此代码放在页面加载的末尾。

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

解决了这个问题。

答案 1 :(得分:0)

使用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++;
}