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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。