По сути, IHTMLElement5 и IHTMLElement6 являются расширенными интерфейсами для основного IHTMLElement в соответствии с приведенными ниже правилами управления версиями:
IHTMLElement IE4
IHTMLElement2 IE5
IHTMLElement3 IE5.5
IHTMLElement4 IE6
IHTMLElement5 IE8
IHTMLElement6 IE9
Конечно, каждый новый расширенный интерфейс содержит старые элементы + свои новые новые элементы., свойства и т. д. Однако некоторые члены (например, .getAttribute) имеют то же имя, но были обновлены.Итак, мой вопрос, если я использую (скажем) IHTMLElement6 для объявления моего HTML-элемента и запускаю код на клиенте, на котором установлен только IE6, когда мой объект просто потерпит неудачу и останется нулевым / пустым, когда я его установлю, илиmshtml.dll достаточно умен, чтобы понять, что происходит и по умолчанию используется IHTMLElement4 (собственно, IHTMLElement)?
Просто чтобы прояснить последний оператор в скобках, .getAttribute был добавлен в IHTMLElement и обновлен в IHTMLElement5 и IHTMLElement6 -Если у кого-то установлен только IE6, то я ожидаю, что поведение по умолчанию вернется к IHTMLElement (не IHTMLElement4) - и если этого не произойдет, то я ожидаю сбой моего кода.По сути, мой вопрос: что именно произойдет?
Прямо сейчас, потому что я напуган как сумасшедший, я просто объявляю все как IHTMLElement, есть идеи?
Спасибо.
Краткое изложение вопроса (читайте, если считаете нужным, просто повторное разъяснение для тех, кто в этом нуждается): По сути, я хочу иметь возможность объявить что-то как IHTMLElement6, чтобы я мог использовать обновленные методы, которые имеютодно и то же имя между IHTMLElement и IHTMLElement6 (например, .getAttribute).Таким образом, для пользователей IE9 будет использована версия .getAttribute IHTMLElement6, в то время как версия .getAttribute IHTMLElement будет по-прежнему работать, скажем, для пользователей IE6, не нарушая мой код - это тот момент, когда мой вопрос возникает, при использовании объекта IHTMLElement6, даже если это интерфейс IE9, будет ли добавлена версия .getAttribute IHTMLElement (интерфейс IE4) в / work, или я получу исключение нулевой ссылки или другую ошибку времени выполнения?Спасибо всем.
Чем больше ответов, тем лучше, даже если это ваше мнение, и вы не знаете, как факт, я хотел бы призвать вас по-прежнему комментировать, сообщая нам, если вы знаете это какфакт или если это просто мнение / предположение и т. д. Спасибо.