从UIWebview中删除图像

时间:2010-12-16 16:47:47

标签: javascript ios iphone uiwebview epub

在我的iPhone应用程序,epub阅读器,基于方法here,我解析了epub,创建了UIWebviews,但我有一个小问题。 epub中的图像大于iPhone屏幕的宽度(320像素)。我是否可以在UIWebview([view stringByEvaluatingJavaScriptFromString:SomeJavaScriptString])上调用Javascript方法并以编程方式删除这些图像而无需手动更改epub?

更新:问题可能是源文件是xml文件而不是HTML吗?

3 个答案:

答案 0 :(得分:4)

您可能需要以下内容:document.getElementById('id_of_your_image').style.visibility = 'hidden'

<强>更新 要隐藏文档中的所有图像,

for (i=0; i<document.getElementsByTagName("img").length; i++) {
    document.getElementsByTagName("img")[i].style.visibility = 'hidden';
}

应该这样做。

答案 1 :(得分:1)

var images = Array.prototype.slice.call(document.getElementsByTagName('IMG'), 0);
var imageCount = images.length;
for (var i = 0; i < imageCount; i++) {
    var image = images[i];
    image.parentNode.removeChild(image);
}

答案 2 :(得分:1)

如果您没有处理图形或图像,那么为什么不重视细节:

1)编写一些CSS,在320px或640px的图像上设置最大宽度,具体取决于方向....请参阅http://www.thecssninja.com/css/iphone-orientation-css了解如何针对不同的方向使用不同的css。

2)在任何其他样式或样式表链接之后,在每个HTML文件中插入CSS - 在<style>工作之前添加的</body>元素内。

这样图像仍然是可见的,但不会超过单页宽度。

下一步,你可以用<a href='zoom://x'&gt;之类的东西包装图像。其中x是图像文件名 - 然后在你的UIWebViewDelegate'“shouldStartLoadWithRequest”函数中检查request.URL.scheme ==“zoom” - 如果是你可以在一个可缩放的容器中推送包含图像x的新视图,比如iBooks