显示启动画面,直到Web浏览器呈现页面

时间:2011-12-09 20:49:35

标签: javascript html html5 windows-phone-7 browser

使用WebBrowser小部件创建一个包装HTML 5 Web应用程序的Windows Phone 7应用程序。

在WebBrowser完全呈现网页之前,有没有办法保持启动画面(splashscreenimage.jpg)? (它在呈现页面之前显示为白色)

4 个答案:

答案 0 :(得分:2)

显示默认屏幕截图图像,直到加载了应用程序中的第一页。在此之后,内容已经完成呈现。

WebBrowser控件作为Loaded事件,但这与已呈现的页面内容不同。 (如果页面内容很复杂并且需要时间来完全呈现,这将导致白/空白屏幕显示的时间长度。)

您需要实现自己的启动画面才能获得您想要的效果。在XAML而不是HTML中执行此操作,否则您的HTML启动画面将遇到与现在相同的问题。将图像添加到与WebBrowser相同的页面,但将其放在WebBrowser控件的顶部。一旦您知道已经显示了基础内容,就更改其可见性。

如果您可以确信呈现页面内容所需的时间,那么只需在WebBrowsers Loaded事件触发后添加延迟即可。您可能希望在各种设备上测试它。也许可以加一点额外的时间来确保。
如果您不知道需要多长时间,那么请留出足够的时间来确保它将在大部分时间内加载,并且您不会在启动时遇到任何市场认证要求。如果出现这个问题,您可能需要确保加载的第一个HTML页面很简单,然后逐步加载剩余的内容。

或者,您可以向页面添加一些代码,这些代码将在文档正文已加载后通知托管页面。

答案 1 :(得分:0)

仅限网络浏览器的应用无法获得认证。

也就是说,您可以自己显示图像,直到WebBrowser上的LoadCompleted触发为止。

答案 2 :(得分:0)

你可以试试这个。

  1. 使用带有z-index或/和绝对定位的css在html上显示启动图像
  2. 在关闭正文
  3. 之前在页面末尾放置一个元素
  4. 检查元素是否存在。
  5. 如果元素存在,则可以删除启动画面
  6. 我建议您在几秒钟内删除屏幕,以便加载所有图像

答案 3 :(得分:0)

将此样式放在<head>

<style>
    #splash {
        position: absolute;
        top: 0px;
        left: 0px;
        bottom: 0px;
        right: 0px;
        background: #fff;
    }
</style>

将启动画面div放在<body>的开头:

<body>
        <div id="splash">
            ... splash screen contents ...
        </div>
....

在关闭body标签之前:

....
    <script type="text/javascript">
        document.getElementById('splash').style['display'] = 'none';
    </script>
</body>