剛參加工作的時(shí)候,在csdn上寫過類似的文章,今天維護(hù)代碼,覺得還是有一點(diǎn)點(diǎn)價(jià)值的,特來分享一下,大家多拍磚。

準(zhǔn)備js文件
functionsetImageClickFunction(){
varimgs = document.getElementsByTagName("img");
for(vari=0;i
varsrc = imgs[i].src;
imgs[i].setAttribute("onClick","getImg(src)");
}
document.location = imageurls;}
functiongetImg(src){
varurl=src;
document.location = url;
}
這段js代碼的作用是遍歷網(wǎng)頁源碼中“img” 節(jié)點(diǎn),并為每個(gè)節(jié)點(diǎn)添加一個(gè)事件。
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIWebView*web=[[UIWebViewalloc]initWithFrame:self.view.frame];
[self.viewaddSubview:web];
web.delegate=self;
[webstringByEvaluatingJavaScriptFromString:[NSStringstringWithContentsOfURL:[[NSBundlemainBundle]URLForResource:@"Findimg"withExtension:@"js"]encoding:NSUTF8StringEncodingerror:nil]];
[webloadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:@"http://www.itdecent.cn/p/316631f145d6"]]];
}
-(void)webViewDidFinishLoad:(UIWebView*)webView
{
[webViewstringByEvaluatingJavaScriptFromString:@"setImageClickFunction()"];
}
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString*path=[[requestURL]absoluteString];
NSLog(@"%@",path);
if([pathrangeOfString:@"jpg"].location!=NSNotFound)//添加關(guān)鍵字進(jìn)行是否跳轉(zhuǎn)的篩選
{
ImgShowViewController* img=[[ImgShowViewControlleralloc]init];
img.imgUrl=path;
[selfpresentViewController:imganimated:YEScompletion:nil];
returnNO;
}
else
{returnYES;
}
}
讓webview加載定義好的js文件 在完成的時(shí)候,stringByEvaluatingJavaScriptFromString方法嵌入頁面中
最后用于得到uiwebview所有的鏈接,yes? no? 決定是否跳轉(zhuǎn),判斷條件可以用jpg,png后綴做判斷
這樣在Uiwebview中點(diǎn)擊圖片,會得到圖片的url之后就交給你了~~
9/14 更新:如果嵌套在tableView中,記得將該cell 設(shè)置為
cell.selectionStyle=UITableViewCellSelectionStyleNone;