3

私は、jquery、jqueryui、ajaxify、および多くの jquery 拡張機能を使用して Web アプリに取り組んでいます。アプリケーションのある時点で、Java アプレットを使用する必要があります。アプレットは ajax 呼び出しを介して実行されます。たとえば、jquery.load がアプレット コードを生成するページをロードするとします。次に、アプリを実行しているコンピューターに Java がインストールされているかどうか、およびバージョンが 1.7 以降であるかどうかを検出したいと思います。アプレットが使用される場合にのみ検出が行われるべきです。これは、この機能が限られた数のユーザーによって特定の状況でのみ使用されるためです。

このスクリプトは ajax 呼び出しを介して実行するように設計されておらず、単に失敗するため、deploy.js を使用できません。本当に必要なとき、つまりユーザーがアプレットを起動しようとしているときだけ、Java を検出したいと思います。

どうやってやるの?

私はあなたの助けに感謝します。

4

2 に答える 2

0

最後に、Java がインストールされているかどうかを検出する方法を見つけました。最初は navigator.javaEnabled() でやってみましたが、IE ではうまく動きませんでした。その後、Java デプロイメント ツールキットを試しましたが、window.write が ajax 経由でフェッチされたページと互換性がないため、成功しませんでした。次に、odiszapc のアドバイスに従って Java デプロイメント ツールキットをカスタマイズしようとしましたが、その日の終わりまでに、変更されていない Java 開発ツールキットを使用し、単純にその versionCheck メソッドを使用しました。

Java が検出されない場合、ユーザーは JRE をダウンロードしてインストールするように指示され、リンクが提供されます。正しいバージョンの Java がインストールされている場合、サブページは ajax を介してパラメータ javaOK=1 でリロードされます。このような場合、Java 検出はなく、純粋なアプレット タグだけです。つまり、次のようになります。


    $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;
        }

于 2012-06-16T21:46:03.023 に答える
0

いずれの場合も、 Java Deployment Toolkitを使用する必要があります。特定のチェックが必要な場合は、java_deploy.js を開いて、これがどのように機能するかを確認します。理解するのはそれほど難しくありません。たとえば、Chrome では、特定の特定のuidでタグ付けします。複雑なことは何もありません。次に、これを手動で実行するコードを実行します。

deploy.js の最後で、ページの読み込み後に Java チェックを起動するだけです。1 つのメソッド呼び出し。このコードを削除し、独自のコードで手動で起動しました。

于 2012-06-16T11:14:58.010 に答える