【问题标题】:How can I get a modified value from a TextArea with Tinymce in TWebBrowser (Delphi) [duplicate]如何在 TWebBrowser(Delphi)中使用 Tinymce 从 TextArea 获取修改后的值 [重复]
【发布时间】:2019-08-31 13:19:43
【问题描述】:

在我的 Delphi 应用程序中,我有一个 TWebDocument,它加载一个带有 TextArea 的文档。

这是文档内容:

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <script src="file://c:/projects/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
  <script>tinymce.init({selector:'textarea'});</script>
</head>
<body>
  <textarea id="texto">TEXT HERE</textarea>
</body>
</html>

我可以通过以下代码获取textarea中的文本:

Element := (wb1.Document as IHTMLDocument3).getElementById('texto');
Edit1.Text := Element.Value;

但是如果用户在运行时修改了 textarea 中的文本呢?如何获取修改后的值?

编辑:这是因为 tinyMCE 脚本。所以真正的问题是如果 tinyMCE 处于活动状态,如何从 TWebBrowser 中的 TextArea 获取值。

【问题讨论】:

  • 呃,为什么你认为问题中的代码没有读取文本的当前值?
  • 因为我测试过...我得到了这个代码的过时文本。
  • 好的...只是一个更新:如果我删除 tinymce 脚本,那么我会得到当前值。但我需要tinymce。有什么想法吗?
  • this 是你的意思吗?
  • 是的,实际上我使用的是 v4.9.5,因为我在使用 TWebBrowser 时遇到了问题。

标签: delphi element twebbrowser


【解决方案1】:

好吧,回答我自己的问题: 我将 tinymce.init 更改为:

  tinymce.init({
    selector:'textarea',
    setup: function (editor) {
        editor.on('change', function () {
            tinymce.triggerSave();
        })
    }
  });

【讨论】:

  • 这并没有真正解决所提出的问题。所问的问题没有有关 tinymce 的详细信息。
  • 好吧,tinymce 在代码中,在问题中。如果您将此代码添加到问题中的代码中,您就有了解决方案。
猜你喜欢
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多