JavaFX, webEngine, webView. Изменить src тега <img> (внутри только что загруженного документа) на лету
Во-первых, как для настольного (не Android) приложения.
Я хочу заменить источник изображения, помещенного в загруженный HTML-документ, на локальный (с моего жесткого диска). Я показываю загруженную страницу, используя компоненты JavaFX: webEngine->webView->Scene->Stage. Что я сделал?
Я загрузил страницу с помощью webEngine.load (" http://__any_page__/"). После этого я получил объект изображения (на стороне Java) и преобразовал его в HTMLImageElementImpl. Это представление объекта, который существует на загруженной странице. Я установил атрибут src, как показано ниже:
htmlImageElementImpl.setSrc ("Файл: / local_path_to_my_image");
... и ожидается, что новое изображение появится на загруженной странице. К сожалению, это не работает. Предыдущее изображение (которое изначально было на загруженной странице) исчезло, а новое не появилось (есть белая область). Я определил, что это изображение есть (когда я нажимаю на нем правую кнопку, можно выбрать опцию "открыть изображение в новом окне" и увидеть его). Кажется. Я думаю, что нужно обновить компонент, чтобы показать его.
Что интересно, когда я заменяю src этого тега на изображение, существующее в Интернете, как показано ниже:
htmlImageElementImpl.setSrc (" http://_file_existing_in_the_internet//image.jpg");
... все отлично работает и замененное изображение появляется на лету.
Я провел два дня, и я не справился с этой проблемой. Поэтому я решил спросить вас.
С наилучшими пожеланиями
Kess
1 ответ
Я забыл ответить. Проблема была связана с проблемами безопасности. Возможность доступа к файловой системе (из уровня java-скрипта) ограничена вышеупомянутой причиной.
Решение: Я установил Java встроенный локальный HTTP-сервер и поделился там этими изображениями. Мы должны принять тот факт, что указанный порт на локальной машине должен быть открыт, но это приемлемое решение.