팝업 창을 열고 자바 스크립트를 호출하는 애플릿이있는 웹 페이지가 있습니다. 해당 자바 스크립트 호출로 인해 HTML 입력에서 focus() 호출이 발생하면 브라우저 창이 애플릿 창 앞에 푸시됩니다. 그러나 특정 브라우저, 즉 MSIE에서만 가능합니다. Firefox에서는 애플릿 창이 맨 위에 남아 있습니다. 어떻게 그 행동을 MSIE에서 일관되게 유지할 수 있습니까? Java 용 구형 Microsoft VM을 사용하면 원하는 (애플릿 창을 앞에 표시합니다.) 결과를 얻을 수도 있습니다.애플릿 - 자바 스크립트 상호 작용에서의 포커스 동작
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>
자바 코드 :
는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()");
}
}
예, 삭제되었습니다. 실제 애플릿은 Ajax가조차 만들어지기 전에 수년 전에 작성된 레거시 코드입니다. 나는 이것을 확실히 순수한 웹 기반 구현으로 전환하는 것을 고려하고 있지만 상당한 양의 코딩이 필요합니다. – Dan
나는 그것이 두려웠다. 대화 상자의 기능에 따라 기존 JavaScript 라이브러리에서 일부 작업을 끝내기를 원할 수도 있습니다. 다음은 사용 가능한 여러 가지 JavaScript 대화 도구의 간단한 목록입니다. http://stackoverflow.com/questions/1884096/modern-windowless-popups/1884343#1884343 –