Я только что видел этот взлом в среде, которая в основном предотвращает прямой доступ к element.getAttribute
в IE <9 </strong>, посредством чего он проверяет, существует ли запрошенный атрибут на outerHTML
элемента и, если да, позволяет получателю, иначе возвращает ноль.
var outer = this.outerHTML;
// segment by the opening tag and find mention of attribute name
if (outer.substr(0, outer.search(/\/?['"]?>(?![^<]*<['"])/)).indexOf(name) < 0) return null;
... ADD TO WHITELIST AND CONTINUE..
учитывая, что уже определено множество пользовательских геттеров, которые отображают определенные свойства, такие как html
, text
, style
и т. Д., Которые традиционно являются хитрыми, какое возможное мышление может быть при такой защите? Я думаю, что свойства экспандо ...
существуют ли обстоятельства, при которых IE6 / 7/8 может возвращать что-либо, кроме атрибута в DOM для элемента?
также, почему они решили не фильтровать коллекцию element.attributes
, и это не было бы быстрее - или это не считается достаточно надежным (учитывая, что все стандартные методы получения уже учтены)?