在我的iPhone应用程序,epub阅读器,基于方法here,我解析了epub,创建了UIWebviews,但我有一个小问题。 epub中的图像大于iPhone屏幕的宽度(320像素)。我是否可以在UIWebview([view stringByEvaluatingJavaScriptFromString:SomeJavaScriptString]
)上调用Javascript方法并以编程方式删除这些图像而无需手动更改epub?
更新:问题可能是源文件是xml文件而不是HTML吗?
答案 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