【问题标题】:How do I prevent a WebView from scaling down a rendered web page? [duplicate]如何防止 WebView 缩小呈现的网页? [复制]
【发布时间】:2009-10-20 05:51:38
【问题描述】:

我正在开发一个涉及 WebView(来自 WebKit 框架)的 Cocoa/Obj-C 应用程序。我注意到这个 WebView 呈现了一个略微缩小的渲染网页版本。示例截图:

在浏览器(Safari 或 Firefox)中:

alt text http://img132.imageshack.us/img132/9824/plain.png

在我的网络视图中:

alt text http://img21.imageshack.us/img21/6673/picture2sa.png

这些恰好是程序生成的本地 HTML/CSS 文件,但如果你告诉 WebView 加载 http://www.google.com,它会做同样的事情。图像和文字似乎都略小。如您所见,在此示例中,1px 水平线消失了。

此 WebView 能够准确地显示页面在浏览器中的外观非常重要,因此我想解决此问题。我查看了 WebView 文档和 Interface Builder 中的所有选项,但没有运气。

【问题讨论】:

    标签: html css cocoa webkit webview


    【解决方案1】:

    您不妨试试这个方法:- (void)setTextSizeMultiplier:(float)multiplier

    【讨论】:

    • 不应该默认为 1 吗?而且,就像我说的,文本和图像都在缩小。不过我会试一试...
    • 可能是WebView的默认文本大小不同,而不是缩小了。
    • 不,我检查了默认文本大小。他们是正确的。就像我说的那样,图像也在缩小。
    • 谢谢!我认为这不起作用,但是当我将乘数设置为大于 1.0 的值时,它最终起作用了。令人惊讶的是,它缩放了图像和所有内容,而不仅仅是文本。但是,这让我想知道:1)为什么方法名为“setTextSizeMultiplier”,而实际上是整个页面都被缩放了?文档没有提到这一点。 2)为什么默认值 1.0 会使事情比应有的小得多?文字不可读,我的 1px 水平线消失了。
    • 在我的系统上 [myWebView setTextSizeMultiplier:1.4] 修复了整体比例,但破坏了页面上的一些其他内容。例如,文本输入。
    【解决方案2】:

    在 Interface Builder 中,尝试将 Web 视图的默认字体大小选项从 12 更改为 16。我相信大多数 Web 浏览器,包括 Safari,都使用默认字体大小 16,但默认字体大小设置为 12一个 Cocoa 网络视图,所以一切都被渲染得更小了。

    【讨论】:

    • 这不起作用,但调用 setTextSizeMultiplier: 值 > 1.0 可以。去图吧。
    【解决方案3】:

    是否可能正在重新调整包含您的 web 视图的超级视图之一?我不记得在 WebKit 文档中看到过任何自动缩放。

    【讨论】:

    • 感谢您的建议,但看起来不是这样。它只是 NSPanel 中的一个简单 WebView,当您单击按钮时会弹出。我在其他地方也有另一个 WebView 也有同样的问题。
    【解决方案4】:

    以下是我如何让 WebView 网页看起来与 Safari 中的一样:

     [[webView preferences] setDefaultFontSize:16];
    

    (在setMainFrameURL 调用之后,我在applicationDidFinishLaunching 处理程序中执行了上述操作。采用了解决方案from a similar question。由于某种原因,在Interface Builder 中更改WebView 字体大小不起作用。)

    【讨论】:

      猜你喜欢
      • 2011-01-12
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2014-11-07
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      相关资源
      最近更新 更多