2015-11-23 3 views
0

У меня есть веб-просмотр, загруженный URL-адрес, и я хочу, чтобы пользователь не мог перенаправлять оттуда, когда он нажимает ссылку «href», он должен просто игнорировать его. Уже пробовал каждый прослушиватель на веб-сайте, и ничего не работает.JavaFX WebView предотвращает перенаправления

Пробовал с DOM крючком, но это не похоже на работу, а также попробовал этот код:

sectionWebView3.getEngine().locationProperty().addListener(new ChangeListener<String>() { 
       @Override public void changed(ObservableValue<? extends String> prop, final String before, final String after) { 
        Platform.runLater(new Runnable() { 
         @Override public void run() { 
           WebEngine vEngine = sectionWebView3.getEngine(); 
           if (after == null || vEngine.getLocation().contains("editor.html")) { 
            //System.out.println("BrowserPane.ChangeListener cancelling " + vEngine.getLocation()); 
            vEngine.getLoadWorker().cancel(); 
           } 
         } 
        }); 
       } 
      }); 

ОТМЕНА(); получить вызов, но он не работает, он просто продолжает загрузку ...

+0

Можете ли вы показать нам какой-то код о том, что вы пробовали? Какую версию JavaFX вы используете? – brimborium

+0

В качестве обходного пути вы можете попробовать отключить нажатие влево или вправо на веб-просмотр. См. Это сообщение: http://stackoverflow.com/a/22264218/5250273 –

+0

Я не wanr, чтобы отключить все клики, есть кнопки, которые должны работать. И для источника я попробовал javascript evebt hook, но пользователь сможет писать, поэтому я беру крюк влику до создания элемента. –

ответ

0

Возможно, вы попытаетесь дождаться завершения события загрузки, а затем получите документ из WebEngine, вызвав sectionWebview3.getEngine().getDocument(). После того, как вы получите это, получите все привязывающие теги, вызвав doc.getElementsByTagName('a').

Как только у вас есть этот список, вы можете перебрать его и установить атрибут href для узлов привязки на «#».

+0

Проблема в том, что Im загружает редактор, tinymce, поэтому пользователь может добавить больше тегов –

Смежные вопросы