我有点卡住了。在我目前正在处理的Android应用程序中,我通过Wordpress REST API下载Wordpress页面的HTML内容,以便在WebView中显示它。到现在为止还挺好。问题是,在内容中,图像包含的格式如下:
<div id="attachment_5471" style="width: 685px" class="wp-caption aligncenter">
<img class="size-full wp-image-5471" alt="alt-text" src="http://link-to-image.png" title="image-title-text" data-recalc-dims="1" />
</div>
包含图像的div的固定宽度会导致我的图像不能调整大小。我使用jquery.imagefit在我的应用中本地调整图像大小以适应设备屏幕。
我解决问题的想法是删除style = width:&#34; *&#34;来自包含图像的所有div。我相信应该可以使用Jsoup,但是,到目前为止我无法做到这一点,所以我来到这里寻求帮助。
此外,这是一个好方法,还是有更清洁的解决方案?
考虑到所有图像和页面的div id都不相同。另外,请注意我不能使用
WebSettings settings = webview.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
因为它使文字很小。
我很感激能够解决这个问题的任何提示。
答案 0 :(得分:1)
使用jQuery删除所有内联样式:
$('div').has('img').attr('style', '');
<强> Demo Before the jQuery 强>
<强> Demo After the jQuery 强>
答案 1 :(得分:0)
如果您想要在WebView中处理此问题,可以通过覆盖 WebViewClient.onPageFinished()
来执行此操作:
@Override
public void onPageFinished(WebView view, String url) {
String js = " .... "; // Here you can write your JavaScript to remove the style=width:"*"
view.loadUrl("javascript:" + js);
}
就像@ zsaat14所说,你可以用jQuery来实现这个目标:
String js = "$('div').has('img').attr('style', '')";
或者:
String js = "$('div').has('img').css('width', '')";