中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

ios在UIWebView中搜索并高亮度顯示關(guān)鍵字-創(chuàng)新互聯(lián)

1.創(chuàng)建兩個文件(SearchWebView.js(文章末尾有寫),UIWebView+SearchWebView(類目))

引自:http://www.cnblogs.com/zhuolaiqiang/archive/2011/06/24/2088906.html

創(chuàng)新互聯(lián)是一家專業(yè)提供鹿城企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為鹿城眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

//js文件內(nèi)容

SearchWebView.js:

var MyApp_SearchResultCount = 0;

function MyApp_HighlightAllOccurencesOfStringForElement(element,keyword) {

  if (element) {

    if (element.nodeType == 3) {    // Text node

      while (true) {

        var value = element.nodeValue; // Search for keyword in text node

        var idx = value.toLowerCase().indexOf(keyword);

        if (idx < 0) break;       // not found, abort

        var span = document.createElement("span");

        var text = document.createTextNode(value.substr(idx,keyword.length));

        span.appendChild(text);

        span.setAttribute("class","MyAppHighlight");

        span.style.backgroundColor="yellow";

        span.style.color="Red";

        text = document.createTextNode(value.substr(idx+keyword.length));

        element.deleteData(idx, value.length - idx);

        var next = element.nextSibling;

        element.parentNode.insertBefore(span, next);

        element.parentNode.insertBefore(text, next);

        element = text;

        MyApp_SearchResultCount++; // update the counter

      }

    } else if (element.nodeType == 1) { // Element node

      if (element.style.display != "none" && element.nodeName.toLowerCase() != 'select') {

        for (var i=element.childNodes.length-1; i>=0; i--) {

          MyApp_HighlightAllOccurencesOfStringForElement(element.childNodes[i],keyword);

        }

      }

    }

  }

}

// the main entry point to start the search

function MyApp_HighlightAllOccurencesOfString(keyword) {

  MyApp_RemoveAllHighlights();

  MyApp_HighlightAllOccurencesOfStringForElement(document.body, keyword.toLowerCase());

}

// helper function, recursively removes the highlights in elements and their childs

function MyApp_RemoveAllHighlightsForElement(element) {

  if (element) {

    if (element.nodeType == 1) {

      if (element.getAttribute("class") == "MyAppHighlight") {

        var text = element.removeChild(element.firstChild);

        element.parentNode.insertBefore(text,element);

        element.parentNode.removeChild(element);

        return true;

      } else {

        var normalize = false;

        for (var i=element.childNodes.length-1; i>=0; i--) {

          if (MyApp_RemoveAllHighlightsForElement(element.childNodes[i])) {

            normalize = true;

          }

        }

        if (normalize) {

          element.normalize();

        }

      }

    }

  }

  return false;

}

// the main entry point to remove the highlights

function MyApp_RemoveAllHighlights() {

  MyApp_SearchResultCount = 0;

  MyApp_RemoveAllHighlightsForElement(document.body);

}

//UIWebView+SearchWebView.h

#import <UIKit/UIKit.h>

@interface UIWebView (SearchWebView)

- (NSInteger)highlightAllOccurencesOfString:(NSString*)str;

- (void)removeAllHighlights;

@end

//UIWebView+SearchWebView.m

#import "UIWebView+SearchWebView.h"

@implementation UIWebView (SearchWebView)

- (NSInteger)highlightAllOccurencesOfString:(NSString*)str

{

  NSString *path = [[NSBundle mainBundle] pathForResource:@"SearchWebView" ofType:@"js"];

  NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

  [self stringByEvaluatingJavaScriptFromString:jsCode];

  NSString *startSearch = [NSString stringWithFormat:@"MyApp_HighlightAllOccurencesOfString('%@')",str];

  [self stringByEvaluatingJavaScriptFromString:startSearch];

  NSString *result = [self stringByEvaluatingJavaScriptFromString:@"MyApp_SearchResultCount"];

  return [result integerValue];

}

- (void)removeAllHighlights

{

  [self stringByEvaluatingJavaScriptFromString:@"MyApp_RemoveAllHighlights()"];

}

@end

//在調(diào)用的UIWebView中調(diào)用搜索關(guān)鍵字,記住,一定要在加載網(wǎng)頁后顯示(寫在-(void)webViewDidFinishLoad:代理方法里)

[webView1 highlightAllOccurencesOfString:@“搜索的關(guān)鍵字”];

Xcode 新建js文件

解決方法:新建一個文件(Other -> Empty ->命名為.js的文件)


Xcode編譯WebApps找不到j(luò)s的錯誤解決辦法

解決方法:在targets  -> Build Phases ->  Copy Bundle Resources  -> + (將js文件加進Copy  Bundle Resources)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站標(biāo)題:ios在UIWebView中搜索并高亮度顯示關(guān)鍵字-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article48/ccipep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈定制網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站維護、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
通榆县| 屏东县| 长沙市| 弋阳县| 巴青县| 新乐市| 建宁县| 清涧县| 镇原县| 柘城县| 郎溪县| 河津市| 红河县| 金门县| 治县。| 塔河县| 迁安市| 聂拉木县| 嘉祥县| 宝坻区| 横山县| 田阳县| 津南区| 西昌市| 临清市| 柏乡县| 滦平县| 平塘县| 祁阳县| 大余县| 舞钢市| 池州市| 综艺| 东光县| 苏州市| 枣庄市| 绥芬河市| 舞阳县| 汉沽区| 淳化县| 恩施市|