Одобрено: Fortect
За последние несколько недель некоторые из наших пользователей столкнулись с известной ошибкой в дополнение к активному элементу неуказанного html-файла с документацией об ошибках. Эта проблема возникает по ряду причин. Об этом мы поговорим ниже.
Расположены
Есть две забавные ошибки document.activeElement
, связанные с This, т. е. недавно появившиеся в пользовательском интерфейсе jQuery. Я подумал, что часто для того, чтобы избавить других от волнения, это нужно документировать.
Доступ к Document.activeElement
из
IE9
код> пред>
И в этом
большинство людей хотят знать, какой элемент имеет фокус.
<код> / * other.html * /<скрипт> console.log(parent.document.activeElement);скрипт>код> пред>
Во всех браузерах, кроме IE9, сохраняется часть элемента, почему он имеет фокус в документе напоминания (по умолчанию
). В IE9 это странно вызовет "Неопределенная ошибка"
.
Да, вся ваша семья прочитала это правильно; ДОСТУП к активам большинства родительских элементов activeElement
вызывает ошибку как часть документа
в IE9.
Что вы можете сказать о продукте? Поскольку источником ошибки является прямой доступ, просто существует только одна попытка перехвата/перехвата.
var activeElement;Пытаться activeElement наиболее точно соответствует parent.document.Catch(activeelement; Вина) активный элемент равен parent.document.body;код> пред>
К счастью, это другая проблема, и с ней сталкивается только IE9; подобных методов нет в IE 8, Top 7 или десятке.
Размытие
Изменения Windows для IE9 и IE10
Если вы вызываете document.body.blur ()
через IE9 или ie10, порт приложения переключается. Вы снова правильно прочитали; и каждый раз, когда у вас открыты IE и Блокнот, переключайте ноль в Блокнот, ссылаясь на document.body.Will foriegn()
. Если не верите, отзовитесь IE9 или даже IE10 и попробуйте сами document.body.blur()
в консоли.
Помните, что в предыдущем разделе неоплачиваемый activeelement
— это точный
. Поэтому, если вы вообще вызываете document.activeElement.blur()
, вы, скорее всего, будете развивать окна формы приложения для своих пользователей.
Чтобы решить эту проблему, убедитесь, что activeElement
не всегда был
, прежде чем использовать blur ()
.
если найдете (document.activeElement.nodeName.toLowerCase()! == "body") Doc .activeElement.Это размытие ();код> пред>
К счастью, проблема была в основном решена в IE11; document.body.blur ()
отсутствие более длинных модифицирующих окон.
Создайте устройство
Это коммит, который я завершил вместе с ошибками пользовательского интерфейса jQuery.
usd(document.activeElement) .blur();код> пред>
// Поддерживается: IE9// IE9 выдает серьезный документ «Неопределенная ошибка» при просмотре .activeElement и запуске