WP7-如何使用javascript在webbrowser中垂直居中放置div
我在WP7论坛上尝试了这个,但什么都没有得到 我正在生成一个相当简单的html文档,其所有内容都在一个div中。我需要在webbrowser控件中垂直居中该div。在WP7-IE中,通常使用带有“display:table”的外部div和带有“display:table cell”的内部div的方法不起作用,所以我使用了javascript。这个非常简单的js函数适用于桌面浏览器: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
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,它应该返回可视视口的尺寸。如果我真的弄明白了,我会再发一次。