Главная страница
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.013 c
2-1248180547
artemm
2009-07-21 16:49
2009.09.20
подсчет одинаковых строк


1-1215965666
dmitry_12_08_73
2008-07-13 20:14
2009.09.20
Диалоговое окно не должно перекрываться другими окнами


2-1247594116
dmitry_12_08_73
2009-07-14 21:55
2009.09.20
Программное управление Internet Explorer-ом


2-1247822256
Tneduts
2009-07-17 13:17
2009.09.20
Удаленное подключение к базе


3-1227192412
bankir
2008-11-20 17:46
2009.09.20
SQL-запрос. Как наиболее правильно сделать.