我如何使用 npapi 读取每个参数
how do i read each param with npapi
我在我的 Delphi 项目中使用 npapi 框架工作,我能够使用当前代码读取参数
procedure TDemoPluginForm.btTestClick(Sender: TObject);
var
obj: IBrowserObject;
res: TStringList;
items, n: IBrowserObject;
i: integer;
begin
res:=TStringList.Create;
try
res.Add('Plugin element details:');
// Get object of plugin element
obj:=Plugin.GetPluginObject;
// Get element property
res.Add('id=' + string(obj['id']));
// Get child elements
res.Add('Child nodes:');
items:=obj.GetObject('childNodes');
for i:=0 to items['length'] - 1 do begin
n:=VarAsObject(items.Invoke('item', [i]));
if CompareText(n['tagName'], 'param') = 0 then
res.Add(Format('Tag: %s; Name: %s; Value: %s',
[string(n['tagName']),
string(n['name']),
string(n['value'])
]));
end;
MessageBox(Self.Handle, PChar(res.Text), PChar('Delphi Plugin'), MB_ICONINFORMATION);
finally
res.Free;
end;
end;
我如何读取每个参数及其引用。
更具体地说,如果我有这样的参数
<param name = "delphi" value = "student" />
如果 param = delphi then somestring := its value 我怎么能读到里面 delphi?
答案触手可及,您可以使用System.SysUtils.SameText
来实现您的目标:
procedure TDemoPluginForm.btTestClick(Sender: TObject);
var
obj: IBrowserObject;
res: TStringList;
items, n: IBrowserObject;
i: integer;
value : String;
begin
res:=TStringList.Create;
try
res.Add('Plugin element details:');
// Get object of plugin element
obj:=Plugin.GetPluginObject;
// Get element property
res.Add('id=' + string(obj['id']));
// Get child elements
res.Add('Child nodes:');
items:=obj.GetObject('childNodes');
for i:=0 to items['length'] - 1 do begin
n:=VarAsObject(items.Invoke('item', [i]));
if SameText(n['tagName'], 'param') then
begin
res.Add(Format('Tag: %s; Name: %s; Value: %s',
[string(n['tagName']),
string(n['name']),
string(n['value'])
]));
if SameText(n['name'], 'delphi') then
value := String(n['value']);
end;
end;
MessageBox(Self.Handle, PChar(res.Text), PChar('Delphi Plugin'), MB_ICONINFORMATION);
finally
res.Free;
end;
end;
我在我的 Delphi 项目中使用 npapi 框架工作,我能够使用当前代码读取参数
procedure TDemoPluginForm.btTestClick(Sender: TObject);
var
obj: IBrowserObject;
res: TStringList;
items, n: IBrowserObject;
i: integer;
begin
res:=TStringList.Create;
try
res.Add('Plugin element details:');
// Get object of plugin element
obj:=Plugin.GetPluginObject;
// Get element property
res.Add('id=' + string(obj['id']));
// Get child elements
res.Add('Child nodes:');
items:=obj.GetObject('childNodes');
for i:=0 to items['length'] - 1 do begin
n:=VarAsObject(items.Invoke('item', [i]));
if CompareText(n['tagName'], 'param') = 0 then
res.Add(Format('Tag: %s; Name: %s; Value: %s',
[string(n['tagName']),
string(n['name']),
string(n['value'])
]));
end;
MessageBox(Self.Handle, PChar(res.Text), PChar('Delphi Plugin'), MB_ICONINFORMATION);
finally
res.Free;
end;
end;
我如何读取每个参数及其引用。
更具体地说,如果我有这样的参数
<param name = "delphi" value = "student" />
如果 param = delphi then somestring := its value 我怎么能读到里面 delphi?
答案触手可及,您可以使用System.SysUtils.SameText
来实现您的目标:
procedure TDemoPluginForm.btTestClick(Sender: TObject);
var
obj: IBrowserObject;
res: TStringList;
items, n: IBrowserObject;
i: integer;
value : String;
begin
res:=TStringList.Create;
try
res.Add('Plugin element details:');
// Get object of plugin element
obj:=Plugin.GetPluginObject;
// Get element property
res.Add('id=' + string(obj['id']));
// Get child elements
res.Add('Child nodes:');
items:=obj.GetObject('childNodes');
for i:=0 to items['length'] - 1 do begin
n:=VarAsObject(items.Invoke('item', [i]));
if SameText(n['tagName'], 'param') then
begin
res.Add(Format('Tag: %s; Name: %s; Value: %s',
[string(n['tagName']),
string(n['name']),
string(n['value'])
]));
if SameText(n['name'], 'delphi') then
value := String(n['value']);
end;
end;
MessageBox(Self.Handle, PChar(res.Text), PChar('Delphi Plugin'), MB_ICONINFORMATION);
finally
res.Free;
end;
end;