首页 > 代码库 > ios: WebView内高亮搜索
ios: WebView内高亮搜索
由于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内高亮搜索
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。