如何检测UIWebView检测<img src="..."/>

时间:2015-06-16 07:55:58

标签: html ios image uiwebview

我知道下面的方法可以检测链接元素点击。但我想知道UIView是否可以检测是否点击了img元素?

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
switch (navigationType) {
    case UIWebViewNavigationTypeLinkClicked:
        NSLog(@"link is click");
        //do something
        break;
    default:
        break;
   }

    return true;
}

一些html来源如下:

<p>xxxxxxxxx</p>
<p><img src="http://imgs.ebrun.com/resources/2015_06/2015_06_16/201506167911434413787546.jpg"> </p>
<p>xxxxxxxxx。</p>
<p><img src="http://imgs.ebrun.com/resources/2015_06/2015_06_16/201506167911434413787546.jpg"> </p>
<p>xxxxxxxxx。</p>

你能告诉我如何使用示例代码吗?感谢。

2 个答案:

答案 0 :(得分:3)

也许this回答可以帮到你。基本上你需要在标签内包装标签并处理

中的按钮点击事件
webView:shouldStartLoadWithRequest:navigationType

方法

答案 1 :(得分:1)

你的img标签没有html点击事件。如果你可以像下面那样制作你的图像 -

<p>xxxxxxxxx</p>
<p><img src="http://imgs.ebrun.com/resources/2015_06/2015_06_16/201506167911434413787546.jpg" onclick="myfunction()"> </p>
<p>xxxxxxxxx。</p>
<p><img src="http://imgs.ebrun.com/resources/2015_06/2015_06_16/201506167911434413787546.jpg" onclick="myfunction()"> </p>
<p>xxxxxxxxx。</p>

然后你可以在UIWebView Delegate方法中捕获你的img click事件 - shouldStartLoadWithRequest。

备用可能选项 -

否则,您已经编写了一个javascript方法,可以动态地将OnClick方法添加到所有IMG标记中。在UIWebView中加载页面时调用此javascript方法 -

- (void) webViewDidFinishLoad:(UIWebView *)webView
{
    //Execute javascript method or pure javascript if needed
    [_webView stringByEvaluatingJavaScriptFromString:@"methodName();"];
}