2014-01-28 16 views
0

如何从已加载TWebBrowser组件的页面更改JavaScript?Delphi - 从TWebBrowser的加载页面更改JavaScript

我想是这样的:

var 
    ElElem: IHTMLElement; 
begin 
    newJSfunction := 'function onclick(){alert("ok");}'; 
    ElElem := GetButtonFromBrowser; 
    ElElem.onclick := newJSfunction; 
    ElElem.click(); 
end; 

,但没有奏效。

回答

0

如果你问一下,如何运行脚本片段到当前Web浏览器,这里是解决方案:

function TMyWebBrowser.RunScript(const Fragment: string): Boolean; 
var 
    D2Ptr: IHTMLDocument2; 
    Win2Ptr: IHTMLWindow2; 
begin 
    Result := False; 
    if Supports(Document, IHTMLDocument2, D2Ptr) and 
    Supports(D2Ptr.parentWindow, IHTMLWindow2, Win2Ptr) then 
    try 
     Result := (Win2Ptr.execScript(Fragment, 'JavaScript') = S_OK); 
    except 
     // Failed to execute JS at runtime 
    end; 
end;