我有一个带有小程序的网页,它会打开一个弹出窗口并进行 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()");
}
}
最佳答案
// JSObject.getWindow(this).eval("focusMe()");
frame.requestFocuse();
通过更改这些应该词。
关于java - Applet-Javascript 交互中的焦点行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883912/