Я пытаюсь заблокировать URL-адреса с определенным ключевым словом в веб-просмотре JavaFX. До сих пор я пытался использовать webEngine.locationProperty().addListener()
для прослушивания изменения состояния. Хотя это успешно блокирует URL-адрес, к сожалению, для свойства locationProperty установлено значение, которое я пытаюсь заблокировать. Это вызывает проблемы для ссылок, которые используют ссылки на странице.
Два решения, которые я пробовал, чтобы вернуть locationProperty правильное значение:
- Звонок
webEngine.load()
. Это приводит к обновлению страницы, и пользователь теряет работу. - Звонок
webEngine.getHistory().go(0)
. Как говорится в документации, это ничего не делает.
Я могу придумать два общих способа решить эту проблему:
- Найдите более раннее место в цепочке свойств, чем locationProperty, которое изменяется для прослушивания.
- Найдите способ вернуть правильное значение locationProperty без перезагрузки страницы. (Я думаю, что это возможно благодаря рефлексии, которой я до сих пор старался избегать.)
Звучат ли какое-либо из этих решений разумно, и если да, то как лучше всего их реализовать?