Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery IE中防止聚焦的小程序_Jquery_Internet Explorer_Applet_Focus - Fatal编程技术网

Jquery IE中防止聚焦的小程序

Jquery IE中防止聚焦的小程序,jquery,internet-explorer,applet,focus,Jquery,Internet Explorer,Applet,Focus,我尝试在输入区域实现光标聚焦,IE给我带来了很多麻烦。我尝试了以下方法(将超时时间也更改为较大的数字): 而且它不会起作用。我注意到我在页面上也有一个小程序,当我删除小程序时,上面的操作正常。另外,如果我在focus()触发器之前放置一个警报,它也会工作 小程序不做任何特别的事情(它实际上检索用户的MAC地址),并且在最后调用一个外部JS函数将MAC地址发送到DOM。我已经尝试将焦点(超时和所有)放在JS函数的末尾,但这也不起作用 有什么不对劲吗?在Firefox中一切都很好,只是在IE中没有

我尝试在输入区域实现光标聚焦,IE给我带来了很多麻烦。我尝试了以下方法(将超时时间也更改为较大的数字):

而且它不会起作用。我注意到我在页面上也有一个小程序,当我删除小程序时,上面的操作正常。另外,如果我在
focus()
触发器之前放置一个警报,它也会工作

小程序不做任何特别的事情(它实际上检索用户的MAC地址),并且在最后调用一个外部JS函数将MAC地址发送到DOM。我已经尝试将焦点(超时和所有)放在JS函数的末尾,但这也不起作用

有什么不对劲吗?在Firefox中一切都很好,只是在IE中没有

当前设置:

//This is called from within the applet using a window.call
function everythingDone()
{
$("#someinput").focus();
//setTimeout(function() { document.getElementById('someInput').focus(); }, 1000);
};

$(function() 
{
    var applet = "<object classid='clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA' width='0' height='0'><param name='code' value='someapplet.class' /><param name='archive' value='/someapplet.jar' /></object>";
    $("#appletarea").html(applet);
    //setTimeout(function() { document.getElementById('someInput').focus(); }, 1000);
});
//这是使用window.call从小程序内部调用的
函数everythingDone()
{
$(“#someinput”).focus();
//setTimeout(函数(){document.getElementById('someInput').focus();},1000);
};
$(函数()
{
var=”;
$(“#appletarea”).html(applet);
//setTimeout(函数(){document.getElementById('someInput').focus();},1000);
});

这是IE版Sun Java插件中的一个臭名昭著的错误。您可以在 . 不幸的是,这个bug是不可复制的!在提议的变通办法中,以下几点对我非常有用:

克鲁克斯特

如果有人感兴趣,我相信我 找到了解决此问题的方法

在applet start()方法中,添加 以下:

JPanel面板=新的JPanel(); 本条添加(面板); panel.addFocusListener(新 FocusAdapter(){public void focusgoven(FocusEvent e){JSObject win=(JSObject) JSObject.getWindow(这个); eval(“onAppletLoad();”;}); panel.requestFocusInWindow()

然后,在HTML代码中添加 以下功能:

函数onAppletLoad(){ myField.focus();//myField的位置 要获取焦点的字段!!}

您必须在中导入以下内容 小程序

导入netscape.javascript.*// JSObject类,用于获取HTML 页面

并将plugin.jar添加到类路径中。 您将在JRE中找到plugin.jar /jre/lib目录(1.4.x+)

虽然小程序有一个JPanel,但是 将大小设置为0,0,您将看不到 它

希望这有帮助

肖恩


我认为一个更简单的解决方法是使用applet/object/embed标记的初始_focus参数

<applet ...>
    <param name="initial_focus" value="false"/>
</applet>


谢谢!我尝试了
setFocusable(false)
成功,但效果非常好!多亏了这一点,我刚刚花了4个小时试图找出什么是窃取焦点,以及如何防止它。这就是解决方案。对我也有用:IE9+JRE 6u45
<applet ...>
    <param name="initial_focus" value="false"/>
</applet>