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-сервер и поделился там этими изображениями. Мы должны принять тот факт, что указанный порт на локальной машине должен быть открыт, но это приемлемое решение.

Другие вопросы по тегам