Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.09.20;
Скачать: [xml.tar.bz2];

Вниз

Программное управление 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
6-1206621682
Vikindos
2008-03-27 15:41
2009.09.20
clientSocket посылка строкой


15-1248204795
DVM
2009-07-21 23:33
2009.09.20
Расщепление байта на биты


8-1196600166
Chaser
2007-12-02 15:56
2009.09.20
Визуализация и одновременная запись звука


2-1247728376
Cobalt
2009-07-16 11:12
2009.09.20
Как сохранить число в трех однобайтовых.


15-1248226307
TUser
2009-07-22 05:31
2009.09.20
Искусство новейших течений в Третьяковской галерее.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский