3

我真的需要能够计算出一段 HTML 在给定的WebView. 这对我正在尝试构建的项目非常重要。我知道这不是立即可能的,但我可以确定 WebView 上是否存在滚动条我可能能够增加视图的高度直到它消失。

对此有什么想法吗?或任何替代解决方案/建议?我考虑使用 HTMLAgilityPack(现在移植到 Metro)将它转换为 TextBlock,但 HTML 太复杂了。

4

2 回答 2

8

如果您可以控制 HTML,请添加以下 javascript:

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

(来自http://james.padolsey.com/javascript/get-document-height-cross-browser/

并称之为而不是alert

window.external.notify(getDocHeight());

然后实现ScriptNotify事件:

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webview.scriptnotify.aspx

于 2012-10-08T09:06:47.930 回答
0

这可能是一个很好的解决方案,但设备像素密度仍然存在问题。如果您在 WP 上运行代码,则转换可能如下所示:

private double PixelsToLogicalPixels(double pixels)
{
     var info=Windows.Graphics.Display.DisplayInformation.GetForCurrentView();
     return pixels / info.RawPixelsPerViewPixel;
}
private double LogicalPixelsToPixels(double pixels)
{
     var info = Windows.Graphics.Display.DisplayInformation.GetForCurrentView();
     return pixels * info.RawPixelsPerViewPixel;
}
于 2016-05-31T19:25:11.317 回答