Javascript 按下IE8上的tab键后禁用dojo onkeyup

Javascript 按下IE8上的tab键后禁用dojo onkeyup,javascript,internet-explorer,browser,dojo,dom-events,Javascript,Internet Explorer,Browser,Dojo,Dom Events,在WebSpherePortal Server上运行的Spring应用程序上使用DojoToolkit 1.4.3(不能使用任何其他版本),我在IE8(恐惧!)上遇到了事件问题 现在,我认为后端与此无关,因为IE8标签的问题是众所周知的: 按网页的任何字段并一直按tab键,焦点会返回到url输入和按钮,重复后不会返回到文档。如果单击网站中的某个元素,它会将焦点重新添加到该元素,但再次按tab键时,焦点会返回到浏览器顶部 现在,我的问题发生在一直使用tab并将焦点移出文档之后。 浏览器似乎正在从D

在WebSpherePortal Server上运行的Spring应用程序上使用DojoToolkit 1.4.3(不能使用任何其他版本),我在IE8(恐惧!)上遇到了事件问题

现在,我认为后端与此无关,因为IE8标签的问题是众所周知的:

按网页的任何字段并一直按tab键,焦点会返回到url输入和按钮,重复后不会返回到文档。如果单击网站中的某个元素,它会将焦点重新添加到该元素,但再次按tab键时,焦点会返回到浏览器顶部

现在,我的问题发生在一直使用tab并将焦点移出文档之后。 浏览器似乎正在从DOM中删除事件,我已经调试了IE8上的代码,它似乎没有触发回调函数,但在不执行整个选项卡操作时,它的行为正常

我尝试使用
dojo.disconnect()
并通过随后调用
dojo.connect()
来重新添加事件,但没有成功,下面是一个小片段:

var connectedObjects = {};
dojo.query(".someClass").forEach(function(inputField){
   connectedObjects[inputField.id] = {}; 
   connectedObjects[inputField.id].onfocus = dojo.connect(inputField, "onfocus", function(event){
       if(connectedObjects[inputField.id]){
           dojo.disconnect(connectedObjects[inputField.id].onkeyup);
           connectedObjects[inputField.id].onkeyup = dojo.connect(inputField, "onkeyup", someCallbackFunction);
       }
   })
});

有人对如何解决这个问题有什么想法吗?

所以,这是一个奇怪的问题,但有一个简单的方法可以解决这个问题,这似乎也可以解决其他浏览器在具有css属性的隐藏输入字段中循环的问题:display:none,依此类推到代码:

dojo.query("*").forEach(function(fieldID){
    dojo.attr(fieldID, "tabIndex", "-1");
});

因此,这是一个奇怪的问题,但有一个简单的方法可以解决这个问题,这似乎也可以解决其他浏览器在隐藏的输入字段中循环的问题,这些字段具有css属性
display:none
,依此类推到代码:

dojo.query("*").forEach(function(fieldID){
    dojo.attr(fieldID, "tabIndex", "-1");
});