Внедрение JavaScript в Java WebView - PullRequest
0 голосов
/ 14 декабря 2018

Добрый вечер, я пытаюсь получить следующий фрагмент JavaScript для запуска в WebView приложения Android.Поверьте мне, я изучил несколько страниц здесь и сделал это аналогичным образом.Вот фрагмент:

function myFunction() {
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var newNode = document.createElement("span");
newNode.setAttribute("style", "background-color: #FFF000;");
range.surroundContents(newNode); 

}

Я работаю над приложением для браузера и хочу выделить текстовые отрывки.Для этого я создал пользовательское меню выбора текста, которое содержит onClickListener.

webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    webView.loadUrl(
        "javascript:(function() { " +
            "var element = document.getElementById('hplogo');"
            + "element.parentNode.removeChild(element);" +
        "})()");
}});

Этот пример работает отлично, и я хотел адаптировать его к своему фрагменту JavaScript.Мой код следующий:

webView.loadUrl("javascript:(function() { " +
                            "var selection = window.getSelection();" +
                            "var range = selection.getRangeAt(0);" +
                            "var newNode = document.createElement('span');"+
                            "sel.addRange(range);"+
                            "newNode.setAttribute('style', 'background-color: #FFF000;');"+
                            "range.surroundContents(newNode);"+
                            "})()");

Это сводит меня с ума.Заранее спасибо.

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема в том, что в вашем коде JavaScript есть «sel.addRange» вместо «selection.addRange»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...