例:
getAppletContext().showDocument(
new URL("javascript:alert(document.getElementById('textbox').value);"
));
このテキスト ボックスの値を警告する代わりに、この値をアプレット プログラムの文字列変数としてさらに使用したいと考えています。どうすればこれを達成できますか?
さまざまなアプローチに対する複数のアイデア。ここにあるいくつかの:
入力フィールドをアプレットに入れます。<input>
HTML ページに -tag を追加する代わりに、 AWT コンポーネントを追加することによって (または、JApplet
新しい Swing ツールキットを使用する場合)、アプレットで入力を取得できます。Swingを優先する必要がありますが。
もちろん、アプレット コードを変更できない場合、これはオプションではありません。
-タグを使用し<param>
ます。tag-docの次の例に示すよう<param>
に、 -tag で -tagを使用して、アプレットにいくつかの初期値 (パラメータなど) を与えることができます。<applet>
<applet code="A21" width="256" height="256" archive="toir.jar">
<param name="img" value="test.gif">
</applet>
ただし、前述のとおり、これらは初期値です。アプレットが既に実行されている間にそれらを変更しても、アプレット自体では変更されません。
したがって、<input>
-tag の値が初期値の場合は、これを使用できます (そしてvalue
、JS で -attribute を操作します)。アプレットの実行中に値を変更したい場合、これはアプレットを再起動する場合にのみ機能します (これは最善の方法ではない可能性があります)。
「Java-to-Javascript 通信」を使用します。JSObject
-classを紹介しているドキュメントがあります。ここで見つけることができます。HTML ページの DOM 構造にアクセスするために使用できる「共通 DOM API」もあります。あなたが探しているもののように聞こえますが、少し古くなっているようです。
また、これは (-tag と同様に) 標準ではないように思われる<applet>
ため、一部のブラウザーはそのサポートを実装していないか、完全に実装していない可能性があります。試してみる必要があります。
// provide a JS function to return the value of textbox
// call it to get the value..
String userInput = JOptionPane.showInputDialog(this, value, ..