在TWebBrowser中执行JS

时间:2014-11-22 19:27:11

标签: javascript delphi twebbrowser

我采用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执行并返回我需要的值,没有形式的事件?

0 个答案:

没有答案