Задать вопрос
@poslannikD
Java/C/C++ Programmer

Почему javascipt в webview работает не полностью?

Есть страница которая загружается с помощью библиотеки okHttp,
после этого парсится html и извлекаются нужные данные.
Далее происходит загрузка страницы в webview
webView.loadDataWithBaseURL(null, result, "text/html", "UTF-8", null);

После некоторых манипуляций с данными пытаюсь их инжектить обратно на страницу и они таки инжектятся, только есть проблема в том что не нажимается кнопка отправки сообщения. Ни с помощью скрипта ни в самом webview.
Вот javascript код отвечающий за вставку данных и нажатие кнопки
@Override
        public void onPageFinished(WebView view, String url) {
            view.loadUrl(
                    "javascript:(" +
                            "window.onload = function ready() { " +
                            "var btnOpen = document.getElementsByClassName('btn btn-primary js-ask');" +
                            "btnOpen[0].click();" +
                            "var btnSend = document.getElementsByClassName('btn btn-primary pull-right');" +
                            "var question = document.getElementById('id_question').value=" + question + ";" +
                            "var name = document.getElementById('id_user_name').value='" + name + "';" +
                            "var email = document.getElementById('id_email').value='" + email + "';" +
                            "var captchaEdit = document.getElementById('id_captcha_1').value='" + captcha + "';" +
                            "console.log('btnSend[0]);" +
                            "btnSend[0].click();" +
                            "})()");
        }

Вывод в консоль из метода onPageFinished
"about:blank#", source: about:blank (1)
"[object HTMLInputElement]", source: about:blank (1)
  • Вопрос задан
  • 451 просмотр
Подписаться 1 Оценить 1 комментарий
Ответ пользователя Махач Имангазалиев К ответам на вопрос (3)
ImangazalievM
@ImangazalievM
Android-программист
Попробуй библиотеку Scripto. Она решит твои проблемы
Ответ написан
Комментировать