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