![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TWebBrowser и фреймы [D6, WinXP]
0xBAD © (2005-11-22 01:13:00)Значит есть сайт, в котором фрейм, в этом фрейме ещё один фрейм, а в этом фрейме форма с логином. с элементами этой формы я работаю, например, так:
var
ov: OleVariant;
...................
ov:=WebBrowser1.OleObject.Document.frames.item(0).Document.frames.item(0).Document;
ov.forms.item(0).nameditem('Login').value:='МойЛогин';
всё пока что работает нормально. далее логинюсь, получаю страничку с фреймом, в котором ещё 2 фрейма. и тут, как только я пытаюсь сделать, например, так
ov:=WebBrowser1.OleObject.Document.frames.item(0).Document
не говоря уж, например, о
n:=WebBrowser1.OleObject.Document.frames.item(0).Document.frames.length
сразу же вылетает ошибка "Отказано в доступе"
Спрашивается, почему???
И вообще, из-за чего в принципе возникает такая ошибка?
crea000 (2006-02-09 22:12:00) [1]Здравствуйте.
Я недавно столкнулся с той же проблемой. Если вы нашли решение, как обойти эту ошибку, буду благодарен, если напишите здесь об этом.
0xBAD (2005-11-22 14:06:00) [2]аа, так вот в чём дело: http://msdn.microsoft.com/workshop/author/om/xframe_scripting_security.asp
теперь понятно откуда растёт корень ошибки про доступ:)
Сдлаю пояснение насчёт доменов сайта, приведу примерную структуру сайта:
Страничка с логином:
-Окно (domain0.ru)
--Фрейм0 (domain0.ru)
---Фрейм1 (domain0.ru)
----Форма с логином
тут ясно дело проблем нет, поскольку во всех фреймах страницы с одного домена
Страничка, которая загружается после логина:
-Окно (domain0.ru)
--Фрейм0 (domain1.ru !!!)
---Фрейм1 (domain1.ru)
----Всякие элементы
---Фрейм2 (domain1.ru)
----Всякие элементы
вот тут то и возникает ошибка когда я пытаюсь достучаться до любого элемента Фрейм0.
то есть получается, что фрейм0 думает что другой фрейм с другим доменом пытается что-то сделать с его элементами
как это обойти??
PS если я слишком заковыристо написал - говорите, опишу проблему по-проще:)