Количество кадров IHTMLDocument2 / IHTMLDocument3 отличается - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь использовать некоторую автоматизацию IE для обработки различных внутренних веб-страниц.Некоторые из этих страниц используют фреймы и фреймы, поэтому мы должны иметь возможность обрабатывать и эти фреймы.

Я столкнулся с проблемами, если фреймы или фреймы не отображают контент в том же домене,родительский документ, и это нормально.

Однако появилось что-то еще, чего я не могу понять.

Если я зайду (например) http://www.gmail.com/ и перейду кСтраница входа, использующая IHTMLDocument2.frames.length, возвращает 1, даже если отсутствуют iframe.IHTMLDocument3.getElementsByName ("iframe"). Length возвращает 0, как и ожидалось.

Это, кажется, происходит только в IE9.IE6 и IE7 работают так, как мы ожидаем, и мы еще не тестировали IE8.

Кто-нибудь знает, почему это происходит?Очевидно, что каждый подсчитывает фактические теги, но где ITHMLDocument2.frames.length получает 1 из всех случаев?Это настройки безопасности и т.д ...?

1 Ответ

0 голосов
/ 27 февраля 2012

Согласно моему элементу проверки в Chrome (здесь Mac не может проверять IE), в gmail есть как минимум 5 фреймов, это первый элемент прямо под тегом body и несколько ниже.

<iframe style="position: absolute; width: 9em; height: 9em; top: -99em; " tabindex="-1" aria-hidden="true"></iframe>

Возможно, DOM, который вы анализируете, является источником одного из этих Iframe, а не самой внешней страницы?

Действительно, у одного из iframe есть дочерний iframe, а у других нет;возможно, именно поэтому IHTMLDocument ведет себя по-разному, но это всего лишь предположение ...

Следует помнить, однако, что оба эти интерфейса древние, IE4 и 5 соответственно.

...