javascript - TEmbeddedWB.ExecScriptEx 不适用于 JavaScript

标签 javascript delphi delphi-xe8 tembeddedwb

在 Delphi VCL 窗体上放置一个 TMemo、一个 TEmbeddedWB 和一个 TButton

这是来自表单单元的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  vResult: OleVariant;
  Para1: string;
begin
  Para1 := '5'; // edPara.Text;
  vResult := EmbeddedWB1.ExecScriptEx('evaluate', [Para1]);
  ShowMessage('Result from the Script: ' + IntToStr(vResult));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  EmbeddedWB1.HTMLCode.Assign(Memo1.Lines);
end;

这是 Memo1.Lines 的内容:

<HTML> 
<HEAD> 
<TITLE>Test Script</TITLE> 
<SCRIPT> 
  function evaluate(x) { alert("Hello from the script evaluate(x)"); return eval(x * x); } 
</SCRIPT> 
</HEAD> 
<BODY> TEST Script: eval(x * x)</BODY> 
</HTML>

但是不起作用:点击按钮后vResult为0。

为什么它不起作用?

最佳答案

在这种情况下,传递给 ExecScriptEx 的参数类型必须是 Integer,而不是 string:

procedure TForm1.Button1Click(Sender: TObject);
var
  vResult: OleVariant;
  Para1: string;
  ParaInt: Integer;
begin
  //Para1 := '5'; // edPara.Text;
  ParaInt := 5;
  vResult := EmbeddedWB1.ExecScriptEx('evaluate', [ParaInt]);
  ShowMessage('Result from the Script: ' + IntToStr(vResult));
end;

现在可以了!

关于javascript - TEmbeddedWB.ExecScriptEx 不适用于 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157469/

相关文章:

javascript - 绑定(bind)方法不起作用

javascript - 在自己的行上开始和结束标记 - vue html 更漂亮

javascript - 如何使用 v-for 删除行

delphi - 发送 ASCII 而不是字符串

user-interface - 如何以编程方式将图像插入 FireMonkey 中的图像列表?

javascript - jQuery 验证 - 验证具有相同名称的复选框组

delphi - Delphi 中的嵌套属性(续)

delphi - 在类声明中使用自己的类作为类型参数约束

delphi - 如何使用注释对字符串列表进行排序

delphi - 如何避免每次重新编译使用过的运行时包时都重新安装已安装的包?