Javascript UIWebView-独立于文本缩放图像

Javascript UIWebView-独立于文本缩放图像,javascript,html,uiwebview,Javascript,Html,Uiwebview,我想在iPhoneUIWebView中显示HTML。我的HTML看起来像 text text <img src.../> text text 文本 文本 文本 文本 如何使组件(通过JavaScript或Objective C)使图像大小与窗口相匹配?即文本大小将保持不变,但图像将按比例缩小/放大以防止水平滚动 谢谢您可以使用百分比或ems在CSS中调整图像大小。这意味着您需要将图像的像素大小转换为百分比或ems。您还应该使用jpeg,因为它们的缩放效果更好 Jon Tan的这篇

我想在iPhoneUIWebView中显示HTML。我的HTML看起来像

text
text
<img src.../>
text
text
文本
文本
文本
文本
如何使组件(通过JavaScript或Objective C)使图像大小与窗口相匹配?即文本大小将保持不变,但图像将按比例缩小/放大以防止水平滚动


谢谢

您可以使用百分比或ems在CSS中调整图像大小。这意味着您需要将图像的像素大小转换为百分比或ems。您还应该使用jpeg,因为它们的缩放效果更好


Jon Tan的这篇文章是我最喜欢的,它几乎解释了整个过程。

你必须知道HTML是什么样子,因为唯一的方法就是操纵DOM

在Mac上,您可以通过Objective C访问DOM,但iPhone上没有该API。幸运的是,您可以通过UIWebView javascript桥执行同样的操作

假设HTML如下所示:

text
text
<img id="myimage" src="..." height="150" width="150"/>
text
text
唯一需要注意的是,您应该等待HTML通过
webViewDidFinishLoad
委托回调完全加载

显然,您也可以选择以下快捷方式:

[webView stringByEvaluatingJavaScriptFromString:
    @"document.getElementById("myimage").width = 300;"];
[webView stringByEvaluatingJavaScriptFromString:
    @"document.getElementById("myimage").height = 300;"];
[webView stringByEvaluatingJavaScriptFromString:@"enlargeImage(300, 300)"];  
[webView stringByEvaluatingJavaScriptFromString:
    @"document.getElementById("myimage").width = 300;"];
[webView stringByEvaluatingJavaScriptFromString:
    @"document.getElementById("myimage").height = 300;"];