簡體   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