Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
#1

OnPageFinished insert js - Программирование Android

25.04.2016, 12:55. Просмотров 274. Ответов 4
Метки нет (Все метки)

Помогите разобраться с такой задачей, в методе onPageFinished не срабатывает скрипт. Сайт просто загружается и все.
Не получается вставить именно скрипт. Если в link1 и link2 поместить текст или ссылку на картинку загружаемого сайта - то все работает на ура.

пробовал еще
Java
1
webView.loadUrl("javascript:document.write('hello')");
Алерт выскакивает но тогда страница становится белой (пропадает вообще).

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
myWebView.setWebViewClient(new WebViewClient() {
 
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
 
                myWebView.loadUrl(url);
                testKey = false;
                return true;
            }
 
            @Override
            public void onPageStarted(WebView view, String url,
                                      Bitmap favicon) {
                if (testKey == false) {
                    myView.setText("started");
                }
 
            }
 
            public void onPageFinished(WebView view, String url) {
                if (testKey == false) {
                    testKey = true;
                    
                    myWebView.getSettings().setJavaScriptEnabled(true);
                    myWebView.getSettings().setDomStorageEnabled(true);
                    String link1 = "<div";
                    String link2 = "<script> alert( 'Hello World' ); </script> <div";
                    myWebView.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('"+link1+"', '"+link2+"')})()");
                    myView.setText("js complete");
                }
            }
        });
        myWebView.loadUrl("http://lexandera.com/2009/01/injecting-javascript-into-a-webview/");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2016, 12:55     OnPageFinished insert js
Посмотрите здесь:

Не работают insert на устройстве - Программирование Android
Возникла проблема со вставкой в таблицу. На эмуляторе insert работает, а на устройстве нет. В чем может быть проблема.

SQlite Insert, delete, update - Программирование Android
Добрый день. Возник такой вопрос. Есть база с таблицей MailSettings. Она пустая. При первом сохранении настроек, все понятно (Insert). ...

Метод insert не видит значения edit-ов - Программирование Android
Метод insert не видит значения edit-ов(вернее видит только если их явно указать в стойствах), в следствии чего добавляются просто пустые...

SQLite как получить номер записи из INSERT - Программирование Android
Собственно САБЖ. Не знаю команды. Уже все перерыл! :( Есть база с id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT Добавляю новую запись и...

Перенос параметра при INSERT в другой запрос INSERT - PHP БД
Здравствуйте. Есть таблица Сlient, в которую при INSERT ClientID присваивается инкрементом. На этой же странице ниже прописываю второй...

INSERT, вложенный в INSERT - PostgreSQL
Господа формучане, доброго времени суток. У меня мало опыта работы с реляционными БД, посему прошу помощи у вас. У меня такая...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
25.04.2016, 14:03     OnPageFinished insert js #2
Andrew9, предполагаю, что сайт чужой и вы не хотите править там саму HTML-страницу. Потому что если можно было поправить, я бы порекомендовал способ через JavascriptInterface.
Вы уверены, что "<div" там ровно один? Я поглядел, там их масса. Идём дальше, допустим, вы заменили какой-то конкретный тег. Действительно ли яваскрипт после этого выполнится? Не надо ли также вставить в "<script>" описание, что это javascript? Много всего может быть.
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
25.04.2016, 14:12  [ТС]     OnPageFinished insert js #3
да <div масса...

Я пробовал <script>...</script> который есть на сайте, полностью заменить на свой но он не отрабатывает. Не знаю почему.

В идеале было бы сделать replace("<body>","<body> myJS \n");
Но скрипт берет то что внутри body и сам этот тэг не видит.


На счет того что явно нужно указать что это js, не уверен ибо
Java
1
myWebView.loadUrl("javascript:(function(){document.body.style.backgroundColor = "yellow"})()");
Выполняется на ура
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
25.04.2016, 14:19     OnPageFinished insert js #4
Andrew9, сделайте на внешнем хостинге нормальный HTML для тестов, где будет всего лишь один <div>, попробуйте сначала на простых случаях. Куда вы сразу на сложные?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2016, 11:16     OnPageFinished insert js
Еще ссылки по теме:

Insert () - C++
Здравствуйте. Подскажите, пожалуйста, в этом коде процедура insert () - стандартная или ее можно расписать как отдельную функцию? ...

INSERT INTO - MS Access
Здравствуйте, уважаемые. Помогите решить такую задачу: Имеется две таблицы в первой поля: , , Во второй много полей, но главное она...

Insert into - C++ Builder БД
Здравствуйте, как вставить информацию в таблицу? Есть таблица tab в ней поля vidygr, ygroza и др, пытаюсь вставить новое значение в...

INSERT into - Java БД
БД - MySql public static void InsertNewFilm(String genre, String nameFilm, String opisanie, String time, String date){ //int id_genre...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
26.04.2016, 11:16  [ТС]     OnPageFinished insert js #5
Вот типа так, помогите привести к рабочести )
Java
1
2
3
          String link1 = "<body>";
                    String link2 = "<body> \n <script> alert( 'Hello World' ); </script> \n";
                    myWebView.loadUrl("javascript:(function(){document.getElementsByTagName('html')[0].replace('"+link1+"', '"+link2+"')})()");
Добавлено через 1 час 0 минут
Java
1
document.getElementsByTagName('html')[0]
не возвращает теги, а только содержимое. По этому та замена что я хочу сделать - не срабатывает. Подскажите как исправить

Добавлено через 18 минут
Знающие подскажите, совсем уже запутался.

Так не работает! (текст остается на месте)
Java
1
2
3
String link1 = "Here’s a simple example which loads a page and then sets its text color to red:";
                    String link2 = "<script> alert( 'Hello World' ); </script>";
                    myWebView.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('"+link1+"', '"+link2+"')})()");


А так работает, текс меняется на "Какой то текст"
Java
1
2
3
String link1 = "Here’s a simple example which loads a page and then sets its text color to red:";
                    String link2 = "Какой то текст";
                    myWebView.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('"+link1+"', '"+link2+"')})()");
Это при загрузке
Java
1
myWebView.loadUrl("http://lexandera.com/2009/01/injecting-javascript-into-a-webview/");
Добавлено через 19 часов 11 минут
Нашел решение, всем спасибо.
Yandex
Объявления
26.04.2016, 11:16     OnPageFinished insert js
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru