function DoJavascript(strJavaScriptContent: string): string;
var
  jscript: olevariant;
begin
  result := '';  try
    try
      jscript := CreateOleObject('ScriptControl');
      jscript.AllowUI := false;
      jscript.Language := 'JScript';      jscript.AddCode(strJavaScriptContent);
      result := jscript.Run('getResultString');
    except
      on e: exception do
      begin
showmessage('错误:'+e.message);
      end;
    end;
  finally
    //jscript.reset;
    jscript := UnAssigned;
  end;end;

解决方案 »

  1.   

    test example:
    JS代码正确的例子
    for i:= 1 to 10000 do
    begin
        s := DoJavascript('function getResultString(){return 123;}');
    end;
    JS代码不正确的例子
    for i:= 1 to 10000 do
    begin
        s := DoJavascript('function getResultString(){return 123'';}');
    end;
      

  2.   

    我用的是组件化的代码http://lysoft.7u7.net
      

  3.   

    这几天测试了一下,上面的代码,在XP,WIN2003上,基本上没有内存泄露而在WIN2000上,内存泄露特别明显,调用10000次,大约要泄露100M左右希望各位能帮我解决一下,在WIN2000下,内存泄露的问题
      

  4.   

    我这儿WIN2000下运行它没有那样内存泄露问题...你把IE相关补丁打一些试试..
      

  5.   

    谢谢 halfdream(哈欠) ,问题终于解决!
    我以前安装过IE6.0的SP1,和其他的一些补丁,有上面说的内存泄露,
    重新安装了IE6.0的SP1,内存泄露已经解决。我测试了3台WIN2000的机器,都是这个问题。估计是某个补丁,引起的问题。