代码之家  ›  专栏  ›  技术社区  ›  Dan

Applet-Javascript交互中的焦点行为

  •  0
  • Dan  · 技术社区  · 16 年前

    我有一个网页,上面有一个小程序,可以打开一个弹出窗口,还可以进行Javascript调用。当该Javascript调用导致对HTML输入进行focus()调用时,会导致浏览器窗口将自身推到小程序窗口的前面。但仅限于某些浏览器,即MSIE。在Firefox上,小程序窗口保持在顶部。我如何在MSIE中保持这种行为的一致性?请注意,使用旧的Microsoft VM for Java也可以获得所需的(前面的小程序窗口)结果。

    <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()");
        }
    }
    
    3 回复  |  直到 16 年前
        1
  •  -1
  •   Justin Johnson    16 年前

    真正的问题是为什么要使用小程序?我已经有一段时间没有使用Java了,但除非您从示例中剥离了大量代码,否则看起来您只是在使用一个简单的对话框。 如果是这样的话,, 这可以通过任意数量的JavaScript库(如 Dojo jQuery 例如

        2
  •  2
  •   sra Jon    14 年前
    // JSObject.getWindow(this).eval("focusMe()");
    frame.requestFocuse();
    

    通过改变这些单词。

        3
  •  0
  •   user250343    15 年前