1

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

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

4

3 回答 3

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';
}

应该做的伎俩。

于 2010-12-16T17:26:19.683 回答
1

如果您不处理查看细节很重要的图表或图像,为什么不处理:

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

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

?

这样图像仍然可见,但不会超出单个页面宽度。

作为下一步,您可以使用类似<a href='zoom://x'> 的内容包装图像,其中 x 是图像文件名 - 然后在 UIWebViewDelegate 的“shouldStartLoadWithRequest”函数中检查 request.URL.scheme == “zoom” - 如果是,您可以推送在可缩放容器中包含图像 x 的新视图,例如 iBooks。

于 2011-01-30T21:24:55.003 回答
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);
}
于 2010-12-16T17:46:51.773 回答