将剪贴板中的文本粘贴到网页上的文本区域输入框

问题描述 投票:0回答:1

我在 Delphi 中使用过剪贴板,所以没有帮助。我的网站有 10 个文本区域框,我需要将 Delphi VCL 应用程序中的一些文本粘贴到网页上的这些文本区域中。

这是页面上的文本区域之一:

<textarea name="txtGoalTransaction275746_0" rows="3" cols="20" 
          id="txtGoalTransaction275746_0" 
          onkeyup="Count(this, 5000)" onchange="Count(this, 5000)" 
          style="width:400px;"></textarea>

我无法使用

TWebbrowser
,因为该网站在
TWebbrowser
中无法正常工作。

我正在寻找一种从我的 Delphi VCL 应用程序中将剪贴板粘贴到文本区域的方法。

如有任何帮助,我们将不胜感激。

我可以通过

正常登录该网站
JSCode := 'document.getElementById("username").value = "myusername";' +
'document.getElementById("pwd").value = "myPaseword";' +
'document.forms[0].submit();';

所以我知道我正在使用 Edgebrowser 好吧。

我正在努力

procedure TForm1.Button1Click(Sender: TObject);
begin
   EdgeBrowser1.ExecuteScript(
    'document.getElementById("txtGoalTransaction271900_0").value ="Test String"');
end;

但是文本区域中没有放置任何内容。

我想知道是否有一种方法可以枚举 tedgebrowser 中显示的网页上的所有元素。

html delphi textarea
1个回答
0
投票

如果您有 Delphi 10.4.2 或更高版本,则可以使用

TEdgeBrowser
组件。

一旦网页加载到浏览器中,您就可以使用 TEdgeBrowser 的

ExecuteScript
方法。它运行任意 Javascript。因此,您可以使用 Delphi 中的 JavaScript 来设置文本区域的值,如下所示:

EdgeBrowser1.ExecuteScript(
  'document.getElementById(''txtGoalTransaction275746_0'').value = ''Some text to your liking!'';');

要回答您的具体问题,将像这样使用剪贴板的内容:

uses 
  Vcl.Clipbrd;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EdgeBrowser1.ExecuteScript(
    'document.getElementById(''txtGoalTransaction275746_0'').value = ''' +
    Clipboard.AsText + ''';');
end;

要使 TEdgeBrowser 工作,您需要安装 Microsoft 的 WebView2 Run-Time,并且 WebView2Loader.dll 必须存在于您的 EXE 文件目录中。

© www.soinside.com 2019 - 2024. All rights reserved.