![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как изменить цвет фона в html странице? [D7, WinXP]
Неумный © (2005-03-10 19:15:00)Сабж.Вопрос, правда, немного не потеме.Но как то надо.Ессно, станица на компе, а не в сети.И другой вопрос: возможно ли это вообще? На яве я это видел.Если вопрос глупый, скажите.
ShimON (2005-03-12 21:50:00) [1]:) Специально для ленивых :)
Пример исполнения ява скрипта в TWebBrowser
uses
MSHTML_TLB, SHDocVw, ShellAPI;
// function to execute a script function
function ExecuteScript(doc: IHTMLDocument2; script: string; language: string):
Boolean;
var
win: IHTMLWindow2;
Olelanguage: Olevariant;
begin
if doc <> nil then
begin
try
win := doc.parentWindow;
if win <> nil then
begin
try
Olelanguage := language;
win.ExecScript(script, Olelanguage);
finally
win := nil;
end;
end;
finally
doc := nil;
end;
end;
end;
// 2 Examples how to login to gmx homepage
procedure FillInGMXForms(WB: ShDocVW_TLB.IWebbrowser2; IDoc1: IHTMLDocument2;
Document: Variant; AKennung, APasswort: string);
const
IEFields: array[1..4] of string = ('INPUT', 'text', 'INPUT', 'password');
var
IEFieldsCounter: Integer;
i: Integer;
m: Integer;
ovElements: OleVariant;
begin
if Pos('GMX - Homepage', Document.Title) <> 0 then
while WB.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
// count forms on document and iterate through its forms
IEFieldsCounter := 0;
for m := 0 to Document.forms.Length - 1 do
begin
ovElements := Document.forms.Item(m).elements;
// iterate through elements
for i := ovElements.Length - 1 downto 0 do
begin
try
// if input fields found, try to fill them out
if (ovElements.item(i).tagName = IEFields[1]) and
(ovElements.item(i).type = IEFields[2]) then
begin
ovElements.item(i).Value := AKennung;
Inc(IEFieldsCounter);
end;
if (ovElements.item(i).tagName = IEFields[3]) and
(ovElements.item(i).type = IEFields[4]) then
begin
ovElements.item(i).Value := APasswort;
Inc(IEFieldsCounter);
end;
except
// failed...
end;
end; { for i...}
end; { for m }
// if the fields are filled in, submit.
if IEFieldsCounter = 3 then
ExecuteScript(iDoc1, 'document.login.submit()',
'JavaScript');
end;
function LoginGMX_IE(AKennung, APasswort: string): Boolean;
var
ShellWindow: IShellWindows;
WB: ShDocVW_TLB.IWebbrowser2;
spDisp: IDispatch;
IDoc1: IHTMLDocument2;
Document: Variant;
k: Integer;
begin
ShellWindow := CoShellWindows.Create;
// get the running instance of Internet Explorer
for k := 0 to ShellWindow.Count do
begin
spDisp := ShellWindow.Item(k);
if spDisp = nil then
Continue;
// QueryInterface determines if an interface can be used with an object
spDisp.QueryInterface(iWebBrowser2, WB);
if WB <> nil then
begin
WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
if iDoc1 <> nil then
begin
WB := ShellWindow.Item(k) as ShDocVW_TLB.IWebbrowser2;
Document := WB.Document;
// if GMX page...
FillInGMXForms(WB, IDoc1, Document, AKennung, APasswort);
end; { idoc <> nil }
end; { wb <> nil }
end; { for k }
end;
// Example 1: Navigate to the gmx homepage in the IE browser an login
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,
'open',
' http://www.gmx.ch',
nil,
nil,
SW_SHOW);
Sleep(2000);
LoginGMX_IE('user@gmx.net', 'pswd');
end;
// Example 2: navigate to the gmx homepage in the Webbrowser an login
procedure TForm1.Button2Click(Sender: TObject);
var
IDoc1: IHTMLDocument2;
Web: ShDocVW_TLB.IWebBrowser2;
begin
Webbrowser1.Navigate(' http://www.gmx.ch');
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
Webbrowser1.Document.QueryInterface(IHTMLDocument2, iDoc1);
Web := WebBrowser1.ControlInterface;
FillInGMXForms(Web, iDoc1, Webbrowser1.Document, 'user@gmx.net', 'pswd');
end;
Fenik (2005-03-12 21:47:00) [2]Мне лень.
ShimON (2005-03-12 21:46:00) [3]Лень по-моему тебе - разоьраться. Тебе это надо или кому??
Неумный (2005-03-12 21:37:00) [4]Все лень что ли?
Неумный (2005-03-11 18:41:00) [5]Посмотрел, поискал...это вроде надо как-то через ком делать, а у меня с этом туго...может, кто даст пример скрипта, изменяющий цвет фона страницы?
Zeqfreed (2005-03-10 20:39:00) [6]Неумный (10.03.05 20:09) [3]
uses MSHTML_TLB
TWebBrowser.Document
http://msdn.rambler.ru/srch?words=IHTMLDocument2&set=msdn
http://search.rambler.ru/srch?old_q=HTML+%F6%E2%E5%F2+%F4%EE%ED%E0&words=HTML+%E7%E0%E4%E0%F2%FC+%F6%E2%E5%F2+%F4%EE%ED%E0&set=www
p.s. если ссылка не будет работать, попробуй её "склеить"
Неумный (2005-03-10 20:10:00) [7]В TWebBrowser
Неумный (2005-03-10 20:09:00) [8]Можешь использовать IHTMLDocument2, TWebBrowser с закладки Internet может предоставить данный интерфейс.
Что до меня недоперло... вроде я там такой переменной "фон" не нашел...как использовать-то?
Zeqfreed (2005-03-10 19:38:00) [9]Неумный (10.03.05 19:15)
Можешь использовать IHTMLDocument2, TWebBrowser с закладки Internet может предоставить данный интерфейс.
nes (2005-03-10 19:22:00) [10]Ум...не доганяю, тебе програмно это нада или через нотепаде тоже можно=) Конкретней...