2014-01-28 5 views
0

Как я могу изменить JavaScript с страницы, уже загруженной в компонент TWebBrowser?Delphi - Измените JavaScript с загруженной страницы в TWebBrowser

Я пытался что-то вроде этого:

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

, но не работает.

ответ

0

Если вы спрашиваете о том, как запустить фрагмент сценария в текущий веб-браузер, вот решение:

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;