码迷,mamicode.com
首页 > 移动开发 > 详细

ios: WebView内高亮搜索

时间:2014-10-10 02:46:33      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   java   for   

由于webview 加载的是网页 只能用js 进行页内查找  废话不说上代码

// 注入 JS 查找
    NSString *resPath = [[NSBundle mainBundle] resourcePath];
    static NSString *jsQuery = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        jsQuery = [NSString stringWithContentsOfFile:[resPath stringByAppendingPathComponent:@"js_plugins.js"] encoding:NSUTF8StringEncoding error:nil];
        
    });
    NSString *js = [NSString stringWithFormat:@"var highlightPlugin = document.getElementById(‘js_plugins‘);                     if (highlightPlugin == undefined) {                     document.body.innerHTML += ‘<div id=\"js_plugins\"> \
                    <style type=\"text/css\"> \
                    .utaHighlight { background-color:yellow; }                     .selectSpan { background-color:yellow; color:red;}                     </style>                     </div>; \
                    %@                     }", jsQuery];
    
    [self stringByEvaluatingJavaScriptFromString:js];
    
    // 清除上次的高亮并设置当前关键字高亮
    [self stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"jQuery(‘body‘).removeHighlight().utaHighlight(‘%@‘);", str]];
    
    // 获取关键字数量
    NSString *count = [self stringByEvaluatingJavaScriptFromString:@"jQuery(‘.utaHighlight‘).length"];
    
    if ([count integerValue]>0) {
        [self focusToFindIndex:0];
    }
dispatch_once 用单例的话不用每调用一次都读取一次文件,后面就是一些调用一些js文件的方法。
可扩展上一个下一个,暂时没有实现。
其他具体文件方法可以看demo
http://pan.baidu.com/s/1eQAGNPC

 

ios: WebView内高亮搜索

标签:style   blog   http   color   io   os   ar   java   for   

原文地址:http://www.cnblogs.com/yoon/p/4014771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!