@xaiponews

Как использовать javascript:(function()) в WebView или как отобразить один элемент веб страницы?

Здесь хочу обсудить известный метод по скрытию элементов веб страницы просматриваемой в WebView. Рабочий вариант таков
webview.setWebViewClient(new WebViewClient(){

 @Override
        public void onLoadResource(WebView view, String url) {
            view.loadUrl("javascript:(function() {" +
                    "document.getElementsByClassName('nameclass')[0].style.display='none';" + "})()");
    }
});

Почему onLoadResource? чтобы скрытие элементов происходило незаметно для пользователя. Но вопрос не в этом.
В интернете много описывают способов как скрыть элементы веб страницы и все они хороши, если вам необходимо скрыть один/два элемента. Если вам нужно скрыть большое количество элементов, то получается много кода, который может плохо работать. Отсюда вопрос - есть ли способ/код, чтобы из всего html кода загруженной веб-страницы, указать только один элемент для отображения, но при этом чтобы он был полностью функционален, как если бы отображался со всем кодом страницы. Например чтобы это выглядело так:

Yandex до обработки
5fda57ef90967563678188.png

Yandex после обработки
5fda5814cc52d401846571.png
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rPman
Нет, потому что отображение элементов наследуемое в древовидной системе элементов, без возможности легко сменить порядок (тем более если нужно чтобы 'все работало как надо' универсально).

p.s. javascript в браузере работает очень быстро, и 99.999% тормозов создают манипуляции с dom, т.е. код поиска всех необходимых элементов на странице потратит считанными миллисекунды времени, а затем почти секунду на их сокрытие, и это скорее всего никак не ускорить.

p.p.s. если все же надо ускорить, попробуйте сначала модификации, не изменяющие размерной структуры документа (чтобы элементы при сокрытии их содержимого не меняли свои размеры и положение других)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
RentaTeam Москва
от 120 000 до 180 000 ₽
Amigoweb Магнитогорск
До 80 000 ₽
25 янв. 2021, в 13:34
3000 руб./за проект
25 янв. 2021, в 13:09
3001 руб./за проект
25 янв. 2021, в 13:08
2000 руб./за проект