簡體   English   中英

如何在AJAX應用程序中檢測Java及其版本

[英]How to detect Java and its version in AJAX app

我正在使用jquery,jqueryui,ajaxify和許多jquery擴展來處理Web應用程序。 在應用程序的某些時候,我必須使用Java applet。 applet通過ajax調用運行,假設jquery.load加載一個生成applet代碼的頁面。 我想檢測運行應用程序的計算機上是否安裝了Java,以及是否為1.7+版本。 只有在要使用applet時才會進行檢測,因為此功能僅供有限數量的用戶使用,並且僅在某些情況下使用。

我不能使用deploy.js,因為這個腳本不是設計為通過ajax調用運行而只是失敗。 我想只在它真正需要的時候檢測java,即當用戶要啟動applet時。

我怎樣才能做到這一點?

我將感謝你的幫助。

您應該在任何情況下使用Java Deployment Toolkit 當我需要一些特定的檢查時,我打開java_deploy.js,看看它是如何工作的。 真的,這並不難理解。 例如,在Chrome中它只插入一個特定的 標簽與certaing uid 沒什么復雜的。 然后我只是手動執行代碼。

在deploy.js結束時,它只是在頁面加載后啟動Java檢查。 一種方法調用。 我剛剛刪除了這段代碼,並在我自己的代碼中手動啟動它。

最后我找到了一種方法來檢測是否安裝了java。 起初我嘗試使用navigator.javaEnabled(),但它與IE無法正常工作。 然后我嘗試了Java部署工具包,但由於window.write與通過ajax獲取的頁面不兼容而沒有成功。 然后我嘗試在odiszapc建議之后定制Java部署工具包......但是到了最后我使用了未經修改的Java開發工具包,我只使用了它的versionCheck方法。

如果未檢測到java,則告知用戶下載並安裝JRE,並提供鏈接。 如果安裝了正確版本的Java,則通過參數javaOK = 1的ajax重新加載子頁面。 在這種情況下,沒有java檢測,只有純applet標簽,簡而言之:


    $SuccessUrl = FileName . "?javaOK=1&" . $_SERVER['QUERY_STRING'];   
    (...)
    $java_detect=EOQ (heredoc shoud be here, some tags don't work)
        
        var version = '1.7'; //required version

        var check = deployJava.versionCheck(version+"+"); //1.7 and higher
        if(!check){ 
          $("#sign_dialog").html("$java_err"); //wrong java or no java at all
        }else{
          $("#sign_dialog").load("$SuccessUrl");
        }
      
    EOQ;
    (...)
        if(isset($_GET['javaOK']) && $_GET['javaOK']=='1'){
          echo $applet;
        }else{
          echo $java_detect;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM