1

jZebra 印刷アプレットを使用しようとしていますが、別のディレクトリにあるページから使用する方法がわかりません。サンプル ページには次のコードがあります。

<applet 
    id="qz"
    name="QZ Print Plugin"
    code="qz.PrintApplet.class"
    width="55"
    height="55">
    <param name="jnlp_href" value="qz-print_jnlp.jnlp">
    <param name="cache_option" value="plugin">
    <param name="disable_logging" value="false">
</applet>

アプレット (qz-print.jar) と別のファイル (qz-print_jnlp.jnlp) がそのコードを含むページと同じディレクトリにある場合、問題なく動作します。ただし、Web ページが別のディレクトリにある場合に動作させるために何を変更すればよいかわかりません。これは些細な質問のようですが、検索しても答えが見つかりませんでした。

アプレットが別のディレクトリにあるときに Web ページにアプレットを取得するには、上記のコードをどのように変更すればよいですか?

4

1 に答える 1

2

使用しているタグ:

<param name="jnlp_href" value="qz-print_jnlp.jnlp">

これと同等です: (「./」に注意してください):

<param name="jnlp_href" value="./qz-print_jnlp.jnlp">

Java はイメージ タグと同じように、絶対パスまたは相対パスを使用します。<img src="./foo.png />

したがって、アプレットを "dist" という名前のフォルダー (つまりhttp://mysite/dist/qz-print.jar) に配置したが、ページが "web" という別のフォルダー (つまりhttp://mysite/web/mypage.html) に配置されている場合は、関連するアプレット タグを次のように変更する必要があります。

<param name="jnlp_href" value="../dist/qz-print_jnlp.jnlp">

または、タグを jnlp への絶対パスに変更するのが最適です。

<param name="jnlp_href" value="/dist/qz-print_jnlp.jnlp">

さらに、qz がこれらのタグを読み込むためのより良い方法を見つけたので、それらを sample.html に入れました。ここから最新バージョンを使用することをお勧めします。

これを書いている時点で、タグを使用する最良の方法は次のとおりです。 <applet id="qz" archive="./qz-print.jar" name="QZ Print Plugin" code="qz.PrintApplet.class" width="55" height="55"> <param name="jnlp_href" value="qz-print_jnlp.jnlp"> <param name="cache_option" value="plugin"> <param name="disable_logging" value="false"> <param name="initial_focus" value="false"> <param name="separate_jvm" value="true"> </applet><br />

jnlp タグだけでなく、アーカイブ タグも更新する必要があることに注意してください。

使用しているサンプルから上記で提供したサンプルへの 3 つの変更点は次のとおりです。

  1. jQuery focus() イベントの初期フォーカス盗用防止
  2. archive=特定のバージョンの Safari との互換性のためのタグ。
  3. このseparate_jvmタグは、ページの読み込み時に Java フレームワークの新しいインスタンスを読み込むために使用されます。これにより、Java 8 の散発的な読み込みの問題が解決されるようです。

最後に、クライアントがまだ Java 6 を実行している場合は、deployQZ();代わりに from sample.html を使用することをお勧めします。これは、Oracle のdeployJava.jsスクリプトを使用して Java クライアントのバージョンを検出します。

-トレス

于 2014-02-28T02:36:53.980 に答える