繁体   English   中英

使HTML和CSS“了解”JavaFX WebView环境

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

您可以要求他们在WebEngineuserAgent属性中包含一些字符串:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM