网页中有如下javascript的数组变量<SCRIPT LANGUAGE="JAVASCRIPT">
var Arrcount=3;
var Arr=new Array(3); 
</SCRIPT>
<SCRIPT LANGUAGE="JAVASCRIPT">
Arr[0]=new Array('aa','bb','cc','dd');
Arr[1]=new Array('ee','ff','gg','hh');
Arr[2]=new Array('ii','jj','kk','ll');
</SCRIPT>在delphi中,如何通过webbrowser来访问这些数组呢?

解决方案 »

  1.   

    通过IWebBrowser2.Documet和IHTMLDocument.Script访问到脚本接口。
    脚本中的全局变量和函数是脚本对象的属性和方法。通过脚本对象的IDispatch接口来获得属性和方法的类型和值。 if (Document=nil) or (ReadyState<{READYSTATE_COMPLETE}READYSTATE_INTERACTIVE)
      then Exit;
      // obtain "script" dispinterface
      Document.QueryInterface(IID_IHTMLDocument, Doc);
      if Doc=nil then Exit;
      Disp:=Doc.Script;
      // prepare global variable name
      StringToWideChar(HandlerName, Name, SizeOf(Name)-1);
      PName:=@Name; // <- double pointer!!!
      // retrieve DispID
      if Disp.GetIDsOfNames(GUID_NULL, @PName, 1, GetSystemDefaultLCID, @DID)<>S_OK
      then Exit;  // no such variable
      

  2.   

    我说的javascript变量是在多重嵌套框架网页中,我通过递归查找,能说到Arrcount值,就对二维数组就不知怎么访问.
    var i:integer;i:=Olevariant(Document.parentWindow).document.script.Arrcount;
    showmessage(inttostr(i));
      

  3.   

    比如我想取Arr[1][2]的字符串怎么操作?
      

  4.   

    曾经写的几个WebBrowser与Script交互的接口,写完了发现没啥用,不过你要的这个功能还能实现。
    http://blog.csdn.net/ideation_shang/archive/2009/07/22/4371286.aspx
      

  5.   

    http://www.gekko-software.nl/Delphi/art08.htm
      

  6.   

    谢谢两位,按ideation_shang的方法搞好了.