WP7-如何使用javascript在webbrowser中垂直居中放置div

WP7-如何使用javascript在webbrowser中垂直居中放置div,javascript,html,xaml,windows-phone-7,webbrowser-control,Javascript,Html,Xaml,Windows Phone 7,Webbrowser Control,我在WP7论坛上尝试了这个,但什么都没有得到 我正在生成一个相当简单的html文档,其所有内容都在一个div中。我需要在webbrowser控件中垂直居中该div。在WP7-IE中,通常使用带有“display:table”的外部div和带有“display:table cell”的内部div的方法不起作用,所以我使用了javascript。这个非常简单的js函数适用于桌面浏览器: function setContent() { var windowHeight = do

我在WP7论坛上尝试了这个,但什么都没有得到

我正在生成一个相当简单的html文档,其所有内容都在一个div中。我需要在webbrowser控件中垂直居中该div。在WP7-IE中,通常使用带有“display:table”的外部div和带有“display:table cell”的内部div的方法不起作用,所以我使用了javascript。这个非常简单的js函数适用于桌面浏览器:

    function setContent() {
        var windowHeight = document.documentElement.clientHeight;
        if (windowHeight > 0) {
            var contentElement = document.getElementsByClassName('DivToCenter')[0];
            var contentHeight = contentElement.offsetHeight;

            if (windowHeight - contentHeight > 0) {
                contentElement.style.position = 'relative';
                contentElement.style.top = ((windowHeight / 2) - (contentHeight / 2)) + 'px';
                window.external.Notify('' + ((windowHeight / 2) - (contentHeight / 2)));
            }
            else {
                contentElement.style.position = 'static';
            }
        }
    }
    window.onload = function() {
        setContent();
    }
    window.onresize = function() {
        setContent();
    }

此函数的结果是,在webbrowser控件中,div看起来太低,好像视口的高度比实际高度高。我从javascript中提取了视口的大小,并注意到它与WebBrowser.ActualHeight属性相同。因此,我现在的工作假设是,报告给javascript的视口的大小是以xaml逻辑像素为单位的,这会弄乱算法。这是我关于发生什么的最好的理论。

你可能应该看看这样一篇文章:,它讨论了WP7中的视口大小。

你可能应该看看这样一篇文章:,它讨论了WP7中的视口大小。

谢谢你的链接,它让我走上了正确的道路。似乎我需要浏览器控件的可视视口,而不是布局视口。不幸的是,浏览器控件似乎不支持window.innerWidth/Height,它应该返回可视视口的尺寸。如果我真的弄明白了,我会再发一次。谢谢你的链接,它让我走上了正确的道路。似乎我需要浏览器控件的可视视口,而不是布局视口。不幸的是,浏览器控件似乎不支持window.innerWidth/Height,它应该返回可视视口的尺寸。如果我真的弄明白了,我会再发一次。