gpt4 book ai didi

javascript - 在 IE8 上按下 tab 后 dojo onkeyup 被禁用

转载 作者:行者123 更新时间:2023-11-30 06:40:30 26 4
gpt4 key购买 nike

我在 IE8 上遇到事件问题(可怕!),在 Websphere Portal Server 上运行的 Spring 应用程序上使用 dojo 工具包 1.4.3(不能使用任何其他版本)。

现在,我不认为后端与此有任何关系,因为 IE8 tabbing 的问题是已知的:

press on any field of a webpage and press tab all the way, the focus goes back up to the url input and buttons and doesn't return to the document after repeating it, if you click on an element in a website it re-adds the focus to that element, but when you press tab again it goes back to the top of the browser.

现在,我的问题发生在一直按 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");
});

关于javascript - 在 IE8 上按下 tab 后 dojo onkeyup 被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com