我采用http://www.foxbase.ru/delphi/javascript-na-delphi.htm工作示例并尝试执行我自己的js代码。一些更正及其类似:http://shadow-core.com/ShadowJS.pas
首先,我不知道问题在哪里... Cuz,在示例的源代码中,我们只是使用:
js:=TDelphiJS.Create;
js.LoadFromURL('http://vbulletin_forum.ru/clientscript/vbulletin_md5.js?v=371');
js.DeclareVariable('mypassword');
js.DeclareVariable('');
js.DeclareVariable('');
js.DeclareVariable('');
js.Execute('md5hash');
ShowMessage(js.GetVariable(2));
js.free;
我在我的单位中使用像这样:
js:=TShadowJS.Create;
js.LoadFromURL('http://shadow-core.com/dev/col/test.php');
js.Execute('R()');
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_id'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_cr'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_76'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_86'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_md'));
我的js代码没有执行,只有这样的默认值:
0
0
1
顺便说一句,如果我在另一个按钮上发生事件
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_id'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_cr'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_76'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_86'));
Form1.Memo1.Lines.Add (js.GetVariable('TS016c63b6_md'));
end;
我得到了我需要的结果。:
ada4857db7445f789aaacaccdfe69aa6:knjn:W0AR1OiN:287517631
w0b5cc99da3d7a58590359w39b2000w1546f47b90000w3d7a58590359f69ee455fa1a72039b20
9f5172f23c74w78bc586fd3109c321
1
这就是问题,如何让twebbrowser执行并返回我需要的值,没有形式的事件?