项目中经常会遇到利用UIWebView加载html,对html的操作主要是利用js来,比如改变字号,获取图片等等;
/***
* Set Font Size
*
*/
function setFontSize(fontSizePercent){
for (var i = 0; i< document.getElementById('webview_content_wrapper').childNodes.length; i++)
{ //遍历该元素下所有子元素
document.getElementById('webview_content_wrapper').childNodes[i].style.fontSize=fontSizePercent+'pt';;
}
}
//获取图片
function getImages(){
var objs = document.getElementsByTagName("img");
var imgScr = '';
for(var i=0;i<objs.length;i++){
imgScr = imgScr + objs[i].src + '+';
};
return imgScr;
};
//为图片添加点击事件
function registerImageClickAction(){
var imgs=document.getElementsByTagName("img");
var length=imgs.length;
for(var i=0;i<length;i++){
img=imgs[i];
img.onclick=function(){
window.location.href='image-preview:'+this.src}
}
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//加载js文件
NSString *UtilsJsPath = [[NSBundle mainBundle] pathForResource:@"MyUtilsJs" ofType:@"js"];
NSString *rbJsString = [NSString stringWithContentsOfFile:UtilsJsPath encoding:NSUTF8StringEncoding error:nil];
[webView stringByEvaluatingJavaScriptFromString:rbJsString];
//改变字体大小
NSString *jsString;
if (fontBig)
{
jsString = [[NSString alloc] initWithFormat:@"setFontSize(\"%@\");",@"15"];
}
if (fontSmall)
{
jsString = [[NSString alloc] initWithFormat:@"setFontSize(\"%@\");",@"10"];
}
if (fontNormal)
{
jsString = [[NSString alloc] initWithFormat:@"setFontSize(\"%@\");",@"12"];
}
[_webView stringByEvaluatingJavaScriptFromString:jsString];
//浏览图片
NSString *urlResurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];
_urlArray = [NSMutableArray arrayWithArray:[urlResurlt componentsSeparatedByString:@"+"]];
if (_urlArray.count >= 2)
{
[_urlArray removeLastObject];
}
[webView stringByEvaluatingJavaScriptFromString:@"registerImageClickAction();"];
}