嗨,我試圖自動化組合框選擇,然後屏幕刮擦結果。但是我在觸發Combo Box Change事件時遇到了一個問題,在更改選擇時不會調用它。 onchange事件被設置爲一個JavaScript函數:事情是這樣的:Delphi Web Automation如何將此變量傳遞給JavaScript函數
"AFunction(this,'combochange.asp?AVariable=true&')"
我試圖使用HTMLWindow.execScript函數來調用JavaScript函數(機能缺失)。該函數直接使用「this」
問題:我將組合框引用爲IHTMLSelectElement。如何在HTMLWindow.execScript調用中將「this」變量的引用傳遞給組合框?
目前代碼:
procedure TFormMain.CallComboChange(Doc: IHTMLDocument2; SelectCombo: IHTMLSelectElement);
var
HTMLWindow: IHTMLWindow2; // parent window of current HTML document
JSFn: string;
begin
HTMLWindow := Doc.parentWindow;
if not Assigned(HTMLWindow) then
Exit;
try
JSFn := 'AFunction(id_Combo, combochange.asp?AVariable=true&)';
HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
except
ShowMessage('Opps exception in javascript call');
end;
end;
我也曾嘗試SelectCombo.OnChange但不做任何事要麼:(
感謝
PS這不是黑客,是簡單地自動執行。耗時的重複任務,然後我想將結果提供給另一個站點(我已經全部正常工作)
[編輯] 一個相關的問題(這可能有助於回答原來的問題) - JavaScript是一種解釋型語言,所以...當我稱這個函數爲函數行時,解釋了這一點?肯定是的,是的?如果是這樣,我想我只需要去「根」。例如:
函數(this.form.elements [「elementname」],「parameters」)。
我不知道太多的JavaScript,所以思考/語法沿着正確的線?