У меня проблема с событиями в IE8 (ужас!), используя набор инструментов dojo 1.4.3 (не могу использовать любую другую версию) в приложении Spring, работающем на сервере портала Websphere.
Теперь я не верю, что бэкэнд имеет к этому какое-то отношение, поскольку проблема с вкладками IE8 известна:
нажмите на любое поле веб-страницы и нажмите вкладку до конца, фокус вернется к вводу URL-адреса и кнопкам и не вернется к документу после его повторения, если вы нажмете на элемент на веб-сайте, он повторно добавляет фокус на этот элемент, но когда вы снова нажимаете вкладку, он возвращается в верхнюю часть браузера.
Теперь моя проблема возникает ПОСЛЕ всего табуляции и выведения фокуса из документа. Казалось бы, браузер удаляет события из 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);
}
})
});
У кого-нибудь есть идеи, как это решить?