[英]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.