2017-09-01 101 views

回答

1

你需要运行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()"); 

确保您启动Javascript

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

感谢。你能解释我多一点吗?这个userSelection.rangeCount是这个内置函数吗?你能向我解释这段代码吗?在此先感谢 – MagicWand

+0

是的,它将内置功能。当您将数据加载到webview时,请将字符串Highlightscript与其一起添加。当用户点击突出显示按钮时调用'webView.loadUrl(“javascript:highlightSelection()”);在longPress webview上的' – Redman

+0

允许选择文本。所以这个userselection.rangecount会知道用户选择的起点和终点吗?另一件事是通过长时间按下我得到一些默认选项,如复制,共享,在网上搜索。有什么方法可以添加更多选项或禁用这些选项。 – MagicWand

0

在搭载Android 4.1(豆形软糖),WebView.findAll()是不推荐使用,我们应该使用WebView.findAllAsync。

reference

愿望这帮助:)

+0

其实没有。我已经看到这个......但仍然感谢。 :) – MagicWand