2017-09-01 11 views
1

ウェブビューに特定のテキストがあります。私はそれらのテキストを選択することができます。私はそれらのテキストを強調したいが、私はそれを行う方法がわからない。誰でもそれについて考えている人は、助けてください!ありがとう!あなたがWebView.findAll(、あなたは、Android 4.1(jellybean)でJavaScript選択したテキストをWebviewで強調表示します。 [Android]

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 

答えて

1

)されますWebView.findAllAsyncを代わりに使用する必要があります。

reference

ウィッシュこのヘルプ:)

+0

感謝。もう少し説明していただけますか?このuserSelection.rangeCountはこの組み込み関数ですか?このコードを私に説明することができますか?ありがとうアドバンス – MagicWand

+0

はいそれはinbuilt関数になります。これまでにwebviewにデータをロードしているときにHighlightscriptという文字列を追加してください。ユーザーがハイライトボタンをクリックすると、webView.loadUrl( "javascript:highlightSelection()"); ' – Redman

+0

on longPress webviewでテキストを選択できます。このuserselection.rangecountはユーザー選択の開始点と終了点を知るでしょうか?もう一つは、長いプレスで私はいくつかのコピー、共有、ウェブ上の検索のようなデフォルトのオプションを取得しています。オプションを追加したり、これらのオプションを無効にする方法はありますか? – MagicWand

0

を有効にしてくださいJavaスクリプト

public static String Highlightscript = " <script language=\"javascript\">" + 

    "function highlightSelection(){" + 
    "var userSelection = window.getSelection();" + 
    "for(var i = 0; i < userSelection.rangeCount; i++)" 
    + " highlightRange(userSelection.getRangeAt(i));" + 
    "}" + 
    "function highlightRange(range){"+ 
    "span = document.createElement(\"span\");"+ 
    "span.appendChild(range.extractContents());"+ 
    "span.setAttribute(\"style\",\"display:block;background:#ffc570;\");"+ 
    "range.insertNode(span);}"+ 
    "</script> "; 

webView.loadUrl("javascript:highlightSelection()"); 

を実行する必要が

+0

実際にはありません。私はこれを見ました....しかし、とにかくおかげです。 :) – MagicWand

関連する問題