Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.20;
Скачать: CL | DM;

Вниз

Программное управление Internet Explorer-ом   Найти похожие ветки 

 
dmitry_12_08_73 ©   (2009-07-14 21:55) [0]

Подскажите, как можно программно посылать команды в открытый Internet Explorer с целью, например, прокрутки веб-страницы


 
TStas ©   (2009-07-14 23:37) [1]

Программно можно вызыватьскрипты из страницы, которая загружена в экспролер. Если Вам нужно просто прокрутить страницу, ИМХО, нет разницы, браузер или ещё что-то, handle у Вас точно есть, шлите ему сообщения, как и всякому иному окну.
Я пробовал вызывать функции из скриптов браузера и наткнулся на непонятную мне особенность: им почему-то не получается передавать параметры, как параметры подпрграмм, но можно через глобальные переменные. Если Вам нужно, найду и повешу код.


 
dmitry_12_08_73 ©   (2009-07-14 23:42) [2]

Если можно, напишите пример сообщения для прокрутки веб-страницы


 
palva ©   (2009-07-14 23:58) [3]

Если известна величина, на которую надо прокрутить в пикселях, то применяют document.body.scrollTop Это надо аккуратно вытащить из браузера нужные интерфейсы и присвоить соответствующее свойство. Но говорят, если на странице указано DOCTYPE то это может не срабатывать.
Нюансы обсуждают, например, здесь.
http://web-silver.ru/forum/showthread.php?t=9347


 
dmitry_12_08_73 ©   (2009-07-15 11:49) [4]

palva, скажите, плиз, как из Delphi доступится к document.body


 
palva ©   (2009-07-15 13:08) [5]

Наверно проще всего так:
WebBrowser1.OleObject.document.body
Но крутые пацаны работают через интерфейсы. Смотрите примеры здесь:
http://www.cryer.co.uk/brian/delphi/twebbrowser/twebbrowser_oleobject.htm


 
dmitry_12_08_73 ©   (2009-07-15 14:11) [6]

Спасибо, palva, я так понимаю, что перед
WebBrowser1.OleObject.document.body
надо подключить к WebBrowser1 этот OleObject (например Internet Explorer), а как это сделать. Можете пример, если можно показать?


 
palva ©   (2009-07-15 17:08) [7]

Не понял, что подключать. На пустую форму кладем WebBrowser и Button Вставляем код в обработчики

procedure TForm1.FormCreate(Sender: TObject);
begin
   WebBrowser1.Navigate("D:\C\delphi\t.htm");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   WebBrowser1.OleObject.document.body.scrollTop := 20;
end;

запускаем проект и нажимаем на кнопку.
Чтобы это работало, html-код не должен содержать <!DOCTYPE... об этом уже шла речь. В противном случае работает такой код:
WebBrowser1.OleObject.document.documentElement.scrollTop := 20;
Смотрите обсуждение по ссылке.


 
dmitry_12_08_73 ©   (2009-07-15 17:22) [8]

Большое спасибо, но у меня такой случай: есть уже открытый Internet Explorer с какой-то открытой веб-страницей (я не знаю её URL) и мне надо получить доступ к свойствам этой страницы через WebBrowser1.


 
palva ©   (2009-07-15 17:39) [9]

А какая проблема? Вы не можете определить DOCTYPE? html это или xhtml ?
Я тоже не знаю как это сделать. А залезать в google и искать решение не хочется. Особенно мне. Тогда давайте напишем две строчки подряд:

WebBrowser1.OleObject.document.body.scrollTop := 20;
WebBrowser1.OleObject.document.documentElement.scrollTop := 20;

Первая из них сработает когда в DOCTYPE указано html, а вторая, когда xhtml.



Страницы: 1 вся ветка

Текущий архив: 2009.09.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1248422799
GanibalLector
2009-07-24 12:06
2009.09.20
Win2003 ограничение запуска приложения


1-1216057016
Power Man
2008-07-14 21:36
2009.09.20
Как программно разрешить использование спящего режима?


2-1248097068
Константин
2009-07-20 17:37
2009.09.20
Проблема синхронизации. Подскажите.


15-1248381002
Юрий
2009-07-24 00:30
2009.09.20
С днем рождения ! 24 июля 2009 пятница


15-1248340620
РВА
2009-07-23 13:17
2009.09.20
Удаленное подключение к ПК и к базе.. как?