Javascript 从UIWebview中删除图像
在我的iPhone应用程序中,一个基于该方法的epub阅读器,我解析了epub,创建了UIWebView,但我有一个小问题。epubs中的图像大于iPhone屏幕的宽度(320像素)。是否有一种Javascript方法可以在UIWebview(Javascript 从UIWebview中删除图像,javascript,ios,iphone,uiwebview,epub,Javascript,Ios,Iphone,Uiwebview,Epub,在我的iPhone应用程序中,一个基于该方法的epub阅读器,我解析了epub,创建了UIWebView,但我有一个小问题。epubs中的图像大于iPhone屏幕的宽度(320像素)。是否有一种Javascript方法可以在UIWebview([view stringByEvaluatingJavaScriptFromString:SomeJavaScriptString])上调用,并以编程方式删除这些图像,而无需手动更改epub 更新:问题可能是源文件是xml文件而不是HTML吗?您可能需要类
[view stringByEvaluatingJavaScriptFromString:SomeJavaScriptString]
)上调用,并以编程方式删除这些图像,而无需手动更改epub
更新:问题可能是源文件是xml文件而不是HTML吗?您可能需要类似以下内容:
document.getElementById(“图像的id”)。style.visibility='hidden'
更新
要隐藏文档中的所有图像
for (i=0; i<document.getElementsByTagName("img").length; i++) {
document.getElementsByTagName("img")[i].style.visibility = 'hidden';
}
for(i=0;i您可能需要类似这样的内容:document.getElementById(“您的图像的id”)。style.visibility='hidden'
更新
要隐藏文档中的所有图像
for (i=0; i<document.getElementsByTagName("img").length; i++) {
document.getElementsByTagName("img")[i].style.visibility = 'hidden';
}
for(i=0;ivar-images=Array.prototype.slice.call(document.getElementsByTagName('IMG'),0);
var imageCount=images.length;
对于(变量i=0;ivar images=Array.prototype.slice.call(document.getElementsByTagName('IMG'),0);
var imageCount=images.length;
对于(变量i=0;i
如果您处理的不是看到细节很重要的图形或图像,为什么不:
1) 编写一些CSS,根据方向设置320px或640px图像的最大宽度…有关如何为不同方向使用不同CSS的信息,请参阅
2) 在任何其他样式或样式表链接之后的每个HTML文件中插入CSS-在
元素中,该元素是在
工作之前添加的
?
这样,图像仍然可见,但不会超过一个页面宽度
作为下一步,您可以使用类似的东西包装图像,其中x是图像文件名-然后在UIWebViewDelegate的“shouldStartLoadWithRequest”函数中检查request.URL.scheme==“zoom”-如果是,您可以在可缩放的容器中推送包含图像x的新视图,像iBooks。如果你不处理那些看到细节很重要的图形或图像,为什么不:
1) 写一些CSS,根据方向设置320px或640px图像的最大宽度。。。。有关如何为不同方向使用不同css的信息,请参见
2) 在任何其他样式或样式表链接之后的每个HTML文件中插入CSS-在
元素中,该元素是在
工作之前添加的
?
这样,图像仍然可见,但不会超过一个页面宽度
作为下一步,您可以使用之类的东西包装图像,其中x是图像文件名-然后在UIWebViewDelegate的“shouldStartLoadWithRequest”函数中检查request.URL.scheme==“zoom”-如果是,您可以在可缩放的容器(如iBooks)中推送包含图像x的新视图。是,但我不想知道图像的id,因为图像没有id,正如我在OP中所说的,我不想手动编辑epub。有没有一种方法可以选择所有带有“img”标签的元素并隐藏它们?奇怪的是,这在iPhone safari中有效,但在我的应用程序中无法正确注入。。。。我可以让其他JS注入,但是(警报(“hello world!”)
)我会接受这一点,因为这是有效的,但是,我最终以编程方式更改HTML并删除了
标记,您可以在函数中包含一个外部JavaScript文件,只需使用stringByEvaluatingJavaScriptFromString:
调用该函数即可。您的答案是正确的。我的要求是,在UIWebview中加载任何url时,它只显示文本而不显示图像。我怎样才能阻止它。。。在您的回答中,什么是文档???是的,但我不想知道图像的id,因为图像没有id,正如我在OP中所说的,我不想手动编辑epub。有没有一种方法可以选择所有带有“img”标签的元素并隐藏它们?奇怪的是,这在iPhone safari中有效,但在我的应用程序中无法正确注入。。。。我可以让其他JS注入,但是(警报(“hello world!”)
)我会接受这一点,因为这是有效的,但是,我最终以编程方式更改HTML并删除了
标记,您可以在函数中包含一个外部JavaScript文件,只需使用stringByEvaluatingJavaScriptFromString:
调用该函数即可。您的答案是正确的。我的要求是,在UIWebview中加载任何url时,它只显示文本而不显示图像。我怎样才能阻止它。。。在您的回答中,什么是文档???当我注入这个JS时,UIWebview上似乎什么都没有发生。。视图已加载,但屏幕上什么也没发生,结果是nil
。。。我还可以验证这个JS代码是否有效:window.scrollTo(0,0)代码>。你知道为什么你的代码没有被正确地注入吗?如果你先注入前两行,然后发出警报(imageCount);,会发生什么?它返回0。问题是否在于它是一个xml文件而不是HTML(实际上是XHTML)?仍然可以工作。你能将文档的一部分粘贴到粘贴箱中或编辑你的q吗?是的,在这里试试:图像不包括在内,但是…当我注入这个JS时,UIWebview上似乎什么都没有发生。。视图已加载,但屏幕上什么也没发生,结果是nil
。。。我还可以验证这个JS代码是否有效:window.scrollTo(0,0)代码>。你知道为什么你的代码没有被正确地注入吗?如果你先注入前两行,然后发出警报(imageCount);,会发生什么?它返回0。问题是否在于它是一个xml文件而不是HTML(实际上是XHTML)?仍然可以工作。您可以将文档的一部分粘贴到粘贴箱中或编辑q吗?可以,请尝试h