У меня такая ситуация - на нашем ASPX-сайте используется DEVExpress, только на IE 8 (оригинальный, а не IE 9 в режиме IE 8) на странице входа у нас постоянно возникает ошибка:
Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus.
И так - я исследовал и обнаружил, что что-то пытается сфокусировать то, что не видно.Поэтому я попробовал это решение - переопределив метод focus ().Вот краткий пример HTML-страницы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>AccuLynx</title>
<script type="text/javascript">
HTMLInputElement.prototype.focusCpy = HTMLInputElement.prototype.focus;
HTMLInputElement.prototype.focus = function () {
if( this.style.display != 'none' && this.style.visibility != 'hidden' && !this.disabled && this.type != 'hidden' ) {
HTMLInputElement.prototype.focusCpy.apply(this, arguments);
}
}
</script>
</head>
<body>
<input type="submit" id="my_link" style="display:none;" value="dfsdfd" />
<script type="text/javascript">
document.getElementById('my_link').focus();
</script>
</body>
</html>
И тогда на тестовой странице все выглядит хорошо, а на реальном сайте - нет.
Код JS - одна из первых вещейэто выполняется - в начале второго файла JS (первый - плагин JQuery) - но это не работает.
Любой совет приветствуется.