procedure TForm1.Button1Click(Sender: TObject);
var
pDoc , pframedoc: IHTMLDocument2;
Arg: TVariantArg ;
win, evnt : IDispatch;
V: Variant;
pDispIds: PDispIdList;
params : tdispparams;
completefunc : olevariant;
function Get ( var pdoc: IHTMLDocument2) : boolean;
Begin
REsult := (pos ('top.Fighter', pdoc.body.innerHTML) <> 0);
End;
Begin
pDoc := WB_GetDocument (WebBrowser1);
if not Assigned (pDoc) then Exit;
WB_GetFrameDocument (pDoc, pframedoc, @get);
win := (pframedoc.parentWindow as IDispatch);
CompleteFunc := wb_elementbyid (pframedoc, 'menu_ref').onmouseover;
// Arg.vt:=VT_BSTR; //binary string
// Arg.bstrVal:=PWideChar(widestring('top.OpenMenu(window, event)'));
arg.vt := VT_DISPATCH;
arg.dispVal := @CompleteFunc ;
Params.rgvarg:=@Arg;
Params.rgdispidNamedArgs:=nil;
Params.cArgs:=1;
Params.cNamedArgs:=0;
win.Invoke(-2147412112, GUID_NULL, GetSystemDefaultLCID, DISPATCH_METHOD, params, @V, nil, nil);
// _log (vartostr(V)); - пустое место
End;
twebbrowser
На старнице есть такой код:
<DIV class=mitem id=menu_ref onmouseover="top.OpenMenu(window, event)"
Мне нужно инициировать событие onmouseover
Код:
Данное решение ник чему не приводит (никакой реакции), как и слюбым вообщем dispid
dispid смотрел в юните mshtml, соотвествует Onmouseover
решения
Код:
htmlwindow2.execscript ('top.OpenMenu(window, event)', 'javascript');
htmlwindow2.top.execscript ('top.OpenMenu(window, event)', 'javascript');
htmlwindow2.top.execscript ('top.OpenMenu(window, event)', 'javascript');
вызывают ошибку сценария " Требуется объект"