Как я могу вставить элемент <SCRIPT>в WebView и запустить его? - PullRequest
2 голосов
/ 01 апреля 2011

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

  1. Создать новый HTML для части страницы
  2. Создать DOMDocumentFragment из этого HTML
  3. Заменить существующий DOMElement новым фрагментом

Это прекрасно работает, но не в том случае, если новый HTML содержит тег <SCRIPT>. Сценарий будет вставлен в DOM, но WebKit не запустит его, оставив страницу в другом состоянии, если бы я ее перезагрузил.

Насколько я понимаю, WebKit не запускает вставленные сценарии, потому что это может привести к возникновению проблемы безопасности, если веб-страница может создавать собственные сценарии и вставлять их. Но это мое собственное приложение, управляющее страницей, а не ненадежный веб-сайт.

Так что мне бы хотелось, чтобы какой-то способ запуска WebKit запускал скрипт после вставки. Кто-нибудь знает, как это можно сделать?


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

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