Ho un contenuto HTML stringa che viene caricato nel metodo webEngine
tramite loadContent()
. Ho anche alcuni file CSS e immagini usati in questa pagina. Sebbene inserissi questi file nello stesso pacchetto di classe java, la pagina caricata non li trovava. Ho cercato documenti e web API, ma non ho trovato nessuna soluzione simile appropriata. Come carico questi file?Come raggiungere file css e immagine dalla pagina html caricata da javafx.scene.web.WebEngine # loadContent?
risposta
è necessario impostare i percorsi locali nella stringa HTML per loadContent
prossimo modo:
view.getEngine().loadContent(
"<img src='" + getClass().getResource("1.jpg") + "' />");
è possibile posizionare il contenuto HTML stringa in un file nella stessa pacchetto come la classe Java e utilizzare il metodo engine.load(String url)
invece :
engine.load(getClass().getResource("mypage.html").toExternalForm());
Quando si esegue questa operazione, tutti i collegamenti relativi nella pagina HTML risolverà alle risorse (ad esempio CSS e file di immagini) nel pacchetto Java.
Attenzione che se si sta caricando una risorsa che si trova in un file jar, il protocollo jar:
non comprende i collegamenti relativi con gli identificatori principali. Ad esempio, <img src="../images/image.png"/>
non funzionerà, ma <img src="/images/image.png"/>
o <img src="images/image.png"/>
durerà a lungo (come si inserisce l'immagine nella posizione appropriata nel file jar). Il protocollo file:
non ha tali restrizioni e i collegamenti relativi a ..
funzioneranno correttamente quando le risorse vengono caricate.
Se la stringa html viene generata dinamicamente dal codice java anziché statica, la soluzione di Sergey è probabilmente la migliore.
ho appena scoperto che utilizzando il tag nel codice HTML <base>
fa anche il trucco:
<html>
<head>
<title>The slash at the end of the href is important!</title>
<base href="file:///absolute/path/to/your/docroot/" />
</head>
<body>
<img src="image.png"/>
</body>
</html>
Se si carica il codice di cui sopra via engine.loadContent(String)
poi image.png
verranno caricate dalla /absolute/path/to/your/docroot/image.png
.
Questo metodo è più semplice se è necessario caricare più risorse poiché è necessario specificare il percorso assoluto in un singolo punto.
Questo è stato testato con WebView
di Java 8u25.
Prova questa
<link href="file:css\default.css" rel="stylesheet" type="text/css" />
- 1. CSS immagine interfaccia grafica prima immagine caricata
- 2. Raggiungere l'effetto opacità bianco in html/css
- 3. HTML e CSS sfondo
- 4. Scarica CSS dalla pagina web
- 5. Impossibile raggiungere la pagina Servlet
- 6. Confronta immagini da file e immagine creata dalla tela
- 7. Creazione di CSS da un file HTML
- 8. Immagine In Linea Con Testo HTML CSS
- 9. Visualizza immagine caricata in JSF
- 10. La mia pagina viene caricata dalla cache del browser?
- 11. jQuery non funziona in AJAX Pagina caricata
- 12. Ottieni bytecode dalla classe caricata
- 13. Immagine da visualizzare come immagine cerchiata usando css
- 14. javascript come salvare html reso sulla pagina web come immagine
- 15. Node.js, Express e css, js, risorse immagine
- 16. Solo una parte del file CSS viene caricata in Chrome
- 17. come estrarre link e titoli da una pagina .html?
- 18. File CSS/JavaScript/immagine indefinito in Eclipse
- 19. Python: come estrarre l'URL dalla pagina HTML usando BeautifulSoup?
- 20. Salva tabella HTML come immagine
- 21. CSS: visualizzazione di una particolare icona da un file immagine
- 22. Come simulare \ hfill con HTML e CSS?
- 23. Come ottenere html della pagina completamente caricata (con javascript) come input in java?
- 24. Come caricare file statici dalla visualizzazione HTML in web2py?
- 25. onPageFinished sta sparando prima che venga caricata la pagina
- 26. Html Immagine su immagine
- 27. ImageIO.read() ruota sempre la mia immagine caricata
- 28. Facile da gestire CSS o HTML leggero?
- 29. Android: come fare riferimento alle immagini degli asset da una pagina html caricata in remoto nella webview
- 30. ridimensiona immagine da file
Sai come fare questo per un BufferedImage in memoria? – alistair
@alistair puoi usare la classe ImageIO, ha un metodo per leggere le immagini bufferizzate. –