ページにJavaアプレットが埋め込まれています。「Click Me」リンクがフォーカスを取得すると、Java スクリプトで「focusApplet」メソッドが呼び出されます。このメソッドは、アプレットの「requestFocus()」メソッドを呼び出しています。関数「focusApplet」は正常に実行されています。しかし、Safari 5、Firefox、Chrome を含む MAC 上のすべてのブラウザで、アプレット内でフォーカスが移動しません。しかし、同じコードが Windows プラットフォームで動作しています。「requestFocusInWindow()」メソッドも試しましたが、うまくいきませんでした。問題を解決するために私を助けてください。
<HTML>
<HEAD>
</HEAD>
<BODY>
<script type="text/javascript">
function sayhello(){
var name = document.getElementById('hellotext');
name.focus();
name.click();
name.value = "raman";
}
function focusMe() {
alert('Hello world!!');
document.getElementById('hellotext').focus();
}
function show() {
var name = document.getElementById('name');
var address = document.getElementById('address');
alert("Hello " + name.value + " Your Address is : " + address.value);// + address.value
}
function focusApplet(){
document.getElementsByName('mediamaster')[0].requestFocus();
}
</script>
<form>
Text : <input type="text" id="mytext" >
Address : <input type="text" id="address" >
<div >
<a id="medialink" href="#" onfocus="focusApplet();">Click Me</a>
</div>
<div>
<APPLET name="mediamaster" CODE="FirstApplet.class" WIDTH="200"
HEIGHT="200" name="FirstApplet" id="fA"></APPLET>
</div>
Name : <input type="text" id="hellotext"> Address : <input type="text">
<input type="reset">
<button value="Show" onclick="show()">show</button>
</form>
</BODY>
</HTML>
アプレット コード:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import netscape.javascript.JSObject;
import org.w3c.dom.html.HTMLDocument;
import com.sun.java.browser.dom.DOMAccessor;
import com.sun.java.browser.dom.DOMAction;
import com.sun.java.browser.dom.DOMService;
import com.sun.java.browser.dom.DOMUnsupportedException;
public class FirstApplet extends Applet {
private Button clear_button;
private Choice color_choices;
private Button button;
public void init() {
this.setFocusable(true);
this.setBackground(Color.green);
try {
service = DOMService.getService(this);
} catch (DOMUnsupportedException e3) {
e3.printStackTrace();
}
final JSObject win = JSObject.getWindow(this);
// Create a button and add it to the applet.
// Also, set the button's colors
clear_button = new Button("Clear");
clear_button.setForeground(Color.black);
clear_button.setBackground(Color.lightGray);
button = new Button("Push Me");
this.add(clear_button);
this.add(button);
// Create a menu of colors and add it to the applet.
// Also set the menus's colors and add a label.
color_choices = new Choice();
color_choices.addItem("black");
color_choices.addItem("red");
color_choices.addItem("yellow");
color_choices.addItem("green");
color_choices.setForeground(Color.black);
color_choices.setBackground(Color.lightGray);
this.add(new Label("Color: "));
this.add(color_choices);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("Hello World!!! Thread2");
win.eval("sayhello()");
}
});
}
}