又遇到问题了,关于delphi执行js的问题

搞定Delphi 2015-09-17 12:28:15
执行js的函数
function ExecScript(Code,Func:string):string;
var
script:OleVariant;
begin
try
script:=CreateOleObject('ScriptControl');
script.Language:='JavaScript';
script.AddCode(Code);
Result:=script.Eval(Func);

except
end;
end;


js的代码在memo中,

如果我调用js中的test函数,传入的值为数字,就没有问题,例如
ExecScript(mmo1.Text,‘test(111)’);
这样是可以执行的。
但是如果我传入的值里面含有英文,感觉就没有执行,返回的是空白。
ExecScript(mmo1.Text,‘test(aaaa)’);

我想要传入的值不仅仅含有数字、字母,还要能传入特殊符号,请问下大牛们,该怎么实现?

小菜在此先谢过了!
...全文
157 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
搞定Delphi 2015-09-18
  • 打赏
  • 举报
回复
引用 3 楼 pathletboy 的回复:
ExecScript(mmo1.Text,‘test("aaaa")’); 这样试试?不加双引号的话,aaaa是变量名,你变量应该未定义。
大牛,按照您说的做了,果然成功了,非常感谢您
pathletboy 2015-09-18
  • 打赏
  • 举报
回复
ExecScript(mmo1.Text,‘test("aaaa")’); 这样试试?不加双引号的话,aaaa是变量名,你变量应该未定义。
搞定Delphi 2015-09-18
  • 打赏
  • 举报
回复
引用 1 楼 doorsky123 的回复:
sParam := Format('"%s",%.5f,%.5f,"%s",%d,"%s"',[sId, dlng, dlat, sIco, notDrag, sTitle]);
是不是双引号的问题?
没有明白呢?您这个代码是哪里来的
SVIP_ 2015-09-17
  • 打赏
  • 举报
回复
sParam := Format('"%s",%.5f,%.5f,"%s",%d,"%s"',[sId, dlng, dlat, sIco, notDrag, sTitle]);
是不是双引号的问题?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧