【问题标题】:Highlight the selected text in webview. [Android]在 webview 中突出显示选定的文本。 [安卓]
【发布时间】:2018-02-10 03:00:20
【问题描述】:

我在网络视图中有某些文本。我可以选择那些文本。我想突出显示这些文本,但我不知道该怎么做。任何人对此有任何想法,请帮助!谢谢!

【问题讨论】:

    标签: android webview highlight


    【解决方案1】:

    在 Android 4.1(jellybean) 中,不推荐使用 WebView.findAll(),我们应该改用 WebView.findAllAsync。

    reference

    希望得到帮助:)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢。你能再解释一下吗?这个 userSelection.rangeCount 是这个内置函数吗?你能向我解释这段代码吗?提前致谢
      • 是的,它将是内置功能。当您将数据加载到 webview 中时,请添加字符串 Highlightscript。当用户点击突出显示按钮时调用webView.loadUrl("javascript:highlightSelection()");
      • 在 longPress webview 上允许选择文本。所以这个 userselection.rangecount 会知道用户选择的起点和终点吗?另一件事是长按我会得到一些默认选项,如复制、共享、网络搜索。有什么方法可以添加更多选项或禁用这些选项。?
      • @RGS 检查这是否有帮助stackoverflow.com/questions/41670806/…
      猜你喜欢
      • 2014-01-29
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2019-12-27
      • 2021-06-26
      • 1970-01-01
      相关资源
      最近更新 更多