Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как плучить кол-во фреймов из IWebBrowsera?


Signal ©   (2012-11-09 05:10:00) 

Пробую так:
WB - это IWebBrowser2;

iDoc := WB.Document as IHtmlDocument2;
FramesCol := iDoc.Get_frames;
FramesLen := FramesCol.Get_length;
ViewMessage(FramesLen); - выдает всегда 1
хотя на странице есть кроссдоменный фрейм

iDoc := WB.Document as IHtmlDocument2; // т.е. вот тут в Idoc лежит основной фрейм и нет других
уже всю голову сломал, мастера помогите плз!

//====


Signal   (2012-11-09 12:35:00) [1]

все ребят разобрался, дело в том, что если кроссдоменный фрейм (то вышеописанным методом он не показуется, типа из за соображений безопасности)
нашел вот такой код:
  function CrossDomainFrame(Doc : IHTMLDocument2;
                            nFrame : Integer) : IWebBrowser2;
  var
     theContainer : IOLEContainer;
     Enumerator : IEnumUnknown;
     nFetched : PLongInt;
     unknownFrame : IUnknown;
  begin
     Result := nil;
     nFetched := nil;
     theContainer := Doc as IOleContainer;
     theContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enumerator);
     Enumerator.skip(nFrame);
     Enumerator.next(1, unknownFrame, nFetched);
     unknownframe.QueryInterface(IID_IWebBrowser2, Result);
  end;

правда тормознуто работает, но работает


sniknik   (2012-11-09 08:09:00) [2]

> выдает всегда 1
открой исходный код странички и посчитай количество тегов <frame> "руками".
???

> есть кроссдоменный фрейм
в смысле? хотя не важно, он есть один?


Наверх

Титульная страница Поиск, карта сайта Написать письмо