使用jQuery

时间:2016-04-12 21:46:35

标签: java jquery jquery-ui internet-explorer applet

最近我们将Java更新到最新版本(1.8.0_77),我们在IE上发现,如果有一个用打开的jQuery UI对话框呈现的页面,这会导致Javascript中的堆栈溢出。

以下代码显示了问题:

<html>
<head>
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">

</head>
<body>
<form>
    <applet width="150" height="30"
            archive="https://docs.oracle.com/javase/tutorial/deployment/applet/examples/dist/applet_HelloWorld/applet_HelloWorld.jar"
            code="HelloWorld.class">
        <param name="initial_focus" value="false">
    </applet>
    <input id="password" type="password"/>
    <button id="login">Login</button>
</form>
<div id="dialog" title="Error">
    <p>Invalid password!</p>
</div>
<script type="text/javascript">
    $(function () {

        $('#password').focus();
        $('#dialog').dialog({
            autoOpen: true,
            modal: true,
            buttons: {
                Ok: function () {
                    $(this).dialog("close");
                }
            }
        });
        $('#login').click(function () {
            console.log("Open dialog!!");
            $('#dialog').dialog('open');
        });
    });
</script>
</body>
</html>

在我们的测试中看来,这不是在以前的某些Java版本上发生的,也不是在IE8和IE9上发生,而是在IE10和IE11上重现。

渲染此页面时,会有很多与对话框和小程序中的按钮相关的focusin和focusout事件。 看起来,就像applet不应该获得焦点一样,然后jQuery将焦点恢复到按钮然后我们有一个循环。

你知道如何解决这个问题吗?

0 个答案:

没有答案