【问题标题】:Focus behavior in Applet-Javascript interactionApplet-Javascript 交互中的焦点行为
【发布时间】: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


    【解决方案1】:
    // JSObject.getWindow(this).eval("focusMe()");
    frame.requestFocuse();
    

    通过改变这些应该的话。

    【讨论】:

      【解决方案2】:

      我们应该鼓励 Oracle 在 Web 浏览器中更多地支持小程序。毕竟,他们正在努力推动JavaFX技术,即applet技术。就焦点问题而言,这似乎很复杂。获得基础装备怎么样?请参考Applet steals Focus 作为开始。

      【讨论】:

        【解决方案3】:

        真正的问题是您为什么要使用小程序?自从我完成 Java 以来已经有一段时间了,但是除非您从示例中删除了很多代码,否则看起来您只是在做一个简单的对话框。 如果是这样,这可以通过任意数量的 JavaScript 库(例如 DojojQuery)轻松且廉价地完成。

        【讨论】:

        • 是的,它被剥离了。真正的小程序是多年前编写的遗留代码,甚至在 Ajax 出现之前。我当然正在考虑将其转换为纯基于 Web 的实现,但这需要大量的编码。
        • 我担心会是这样。根据对话框的作用,您可能希望能够摆脱在现有 JavaScript 库上的一些工作。以下是可用的许多不同 JavaScript 对话框工具的简短列表:stackoverflow.com/questions/1884096/modern-windowless-popups/…
        猜你喜欢
        • 2017-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 2014-08-29
        • 1970-01-01
        • 2012-06-16
        相关资源
        最近更新 更多