Dom*_*mus 2 delphi chromium tchromium chromium-embedded
我想知道TChromiumFMX浏览器组件是否包含用户选择的文本,如果是,则检索该文本,而无需用户首先将其复制到剪贴板(ctrl-c).
为了改进TLama的答案:如果你没有使用ShowMessage,那么在退出Button1Click之前匿名过程并不总是完成,因此通常不会产生任何结果(或者太晚).因此,可以检查Done:= true,因为可以检查过程的最后一行以查看是否已检索到该值:
procedure TForm1.Button1Click(Sender: TObject);
var Done: boolean;
begin
Done := false;
Chromium1.Browser.GetFocusedFrame.VisitDomProc(
procedure(const document: ICefDomDocument)
begin
SelectedText := document.SelectionAsText;
Done := true
end
);
while not Done do Application.ProcessMessages
end;
Run Code Online (Sandbox Code Playgroud)
您将不得不访问DOM,作为礼物,您将收到对当前ICefDomDocument文档界面的引用.的ICefDomDocument接口,那么提供了SelectionAsText方法,该方法返回当前选择作为文本(如果有的话).在代码中,您可以编写如下内容:
procedure TForm1.Button1Click(Sender: TObject);
begin
Chromium1.Browser.GetFocusedFrame.VisitDomProc(
procedure(const document: ICefDomDocument)
begin
ShowMessage(document.SelectionAsText);
end
);
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |