脚本数组传值给html,★★★怎么样通过IHTMLDocument2接口读取页面中的JavaScript脚本中的一个数组的内容???(50分)...

比如javascript的内容为:

<script language=javascript>

var arrData = new Array();

arrData[0] = 0;

arrData[1] = 1;

</script>

delphi程序如下(使用webbrowser控件):

function GetParam(scontent, sStart, sEnd: string): string;

var

pnIndex: Integer;

begin

if (Pos(sStart, scontent) = 0) or (Pos(sEnd, scontent) = 0) then

begin

result := '';

Exit;

end;

result := Copy(scontent, Pos(sStart, scontent) + Length(sStart), Pos(sEnd,

scontent) - Length(sStart) - Pos(sStart, scontent));

end;

procedure TFm_main.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);

var

hform: IHTMLFormelement;

hdoc: ihtmldocument2;

strResult,strTemp: string;

arrData:array[0..999] of string;//假设javascript中的数组元素不会超过1000

i:integer;

begin

strTemp:='';

if Assigned(WebBrowser1) then

begin

hdoc := WebBrowser1.document as ihtmldocument2;

hform := hdoc.Forms.item(0, 0) as IHTMLFormElement;

try

strResult := StringReplace(hdoc.body.outerHTML, ' ', '', [rfReplaceAll]);//替换所有空格

{然后再解析strResult的内容,逐个把数组的内容读到.}

for i:=0 to 999 do

begin

strTemp:= GetParam(strResult,'arrData['+IntToStr(i)+']=',';');

if trim(strTemp) = '' then

break;

arrData:= strTemp;

strResult := copy(strResult,pos('arrData['+IntToStr(i)+']=',length(strResult)));

end

except

end;

end;

end;

程序在实现还不够完善,不过提供了一些思路,希望有用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值