[英]making HTML and CSS “aware” of a JavaFX WebView environment
我正在使用JavaFX WebView渲染器與Java團隊合作開發HTML + CSS + Javascript。 我也想在普通瀏覽器中使用相同的HTML + CSS + Javascript,但我希望在樣式上有一些細微差別,以優化可讀性。
有什么我可以要求JavaFX程序員做的事情,這樣我的HTML + CSS + Javascript可以“意識到”差異嗎? 例如,一個@media
查詢,這樣我就可以在WebView中使用與普通瀏覽器不同的CSS。
您可以要求他們在WebEngine
的userAgent
屬性中包含一些字符串:
WebEngine engine = ...;
engine.setUserAgent(engine.getUserAgent() + " JavaFX-WebView");
您可以從javascript( window.navigator.userAgent
)檢查此屬性,例如:
<!DOCTYPE html>
<html>
<head>
<title>MyPage</title>
<style>
body {
background-color: red;
}
body.javafx {
background-color: yellow;
}
</style>
</head>
<body>
<script>
var javaFX = (window.navigator.userAgent.indexOf("JavaFX-WebView") > -1);
document.body.innerHTML = javaFX ?
"Hello from JavaFX" : "Hello from Browser";
if (javaFX)
document.body.className = "javafx";
</script>
</body>
</html>
只是跑過這個頁面在javascript和javafx之間進行通信
Java應用程序可以通過調用
WebEngine.executeScript()
方法將任意腳本傳遞給WebEngine對象的JavaScript引擎:webEngine.executeScript("history.back()");
所以我想我可以讓我的Java團隊在每個頁面的初始化時做這樣的事情:
webEngine.executeScript("var javaFXApplicationID = 'ABCDE';");
並在Javascript中檢查這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.