问题描述
我在 Delphi 10 上使用 TChromium 组件。 我需要将文本从 TMemo 传输到 html 中的 textarea 并模拟单击此页面上的按钮。
我试过了,没用
chromium1.browser.MainFrame.ExecuteJavaScript('document.all(id_4).value='+Memo1.text+';','',0);
Chromium1.browser.MainFrame.ExecuteJavaScript('id_2.click();',0);
基本上我需要下面的代码,但在 Delphi 10 中使用 TChromium。下面的代码在 delphi7 上使用 TWebbrownser。
Webbrowser1.OleObject.Document.all.Item('id_4',0).value := memo1.Text;
Webbrowser1.OleObject.Document.all.Item('id_2',0).click;
解决方法
如果您的 Memo1
包含文本:
里面有空间。
...然后:
document.all(id_4).value=With space in it.;
... 不是有效的 JavaScript,因为 With
未定义。还有以下三个标记加上点。您必须为其分配文本,因此在 Delphi 中您必须使用:
'document.all( id_4 ).value= "'+ Memo1.Text+ '";'
...作为文字,因为这样它就变成了有效的 JavaScript:
document.all( id_4 ).value= "With space in it.";
当然:如果 Memo1
的文本本身包含一个 "
,您必须注意它。