![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как плучить кол-во фреймов из 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> "руками".
???
> есть кроссдоменный фрейм
в смысле? хотя не важно, он есть один?