【发布时间】:2009-12-10 20:48:21
【问题描述】:
我有一个带有小程序的网页,它打开一个弹出窗口并进行 Javascript 调用。当该 Javascript 调用导致对 HTML 输入的 focus() 调用时,这会导致浏览器窗口将自身推到小程序窗口的前面。但仅限于某些浏览器,即 MSIE。在 Firefox 上,小程序窗口仍位于顶部。如何在 MSIE 中保持这种行为一致?请注意,使用旧版 Microsoft VM for Java 也可以达到预期的效果(前面的小程序窗口)。
HTML 代码:
<html>
<head>
<script type="text/javascript">
function focusMe() {
document.getElementById('mytext').focus();
}
</script>
</head>
<body>
<applet id="myapplet" mayscript code="Popup.class" ></applet>
<form>
<input type="text" id="mytext">
<input type="button" onclick="document.getElementById('myapplet').showPopup()" value="click">
</form>
</body>
</html>
Java 代码:
public class Popup extends Applet {
Frame frame;
public void start() {
frame = new Frame("Test Frame");
frame.setLayout(new BorderLayout());
Button button = new Button("Push Me");
frame.add("Center", button);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
}
});
frame.pack();
}
public void showPopup() {
frame.setVisible(true);
JSObject.getWindow(this).eval("focusMe()");
}
}
【问题讨论】:
标签: java javascript applet cross-browser