【问题标题】:Get (altered) textarea content from webBrowser element in C#从 C# 中的 webBrowser 元素获取(更改的)文本区域内容
【发布时间】:2015-04-04 04:37:19
【问题描述】:

我已经在网上搜索了 2 天,并且即将放弃这个,但我非常接近最终解决方案......所以你是我最后的希望。 ;)

我制作了一个带有 Windows 窗体 GUI 的小 C# 应用程序,它使用 webBrowser 元素来显示嵌入了 TinyMCE 编辑器的 HTML 文件 - 这样我得到了一个带有可自定义编辑器功能的漂亮窗口,我可以完美地满足我的需求项目。 由于在 stackoverflow 上发布了此解决方案,我可以毫无问题地设置此编辑器窗口的 textarea 输入:https://stackoverflow.com/a/16322324/3498545

但是,我在从这个文本区域读取文本时遇到了很大的麻烦。如果我在上面的解决方案中按 ID 读取元素(用于设置内容),我会得到旧文本,因为 TinyMCE 从未真正保存更改。 但是我如何获得我的用户将通过 TinyMCE 在 textarea 中进行的输入?有什么方法可以触发以 HTML 格式发送的表单以获取此输入?

非常感谢您的帮助!

【问题讨论】:

    标签: c# windows forms tinymce textarea


    【解决方案1】:

    好的,回答我自己的问题(也许其他人以后会发现这很有用):

    TinyMCE 的更改不会实时写回 textarea 字段,所以我不得不解决这个问题。一种解决方案是在 javascript 标头中添加一些内容,将每个更改立即写回 textarea,但这给我带来了问题,因为此时不涉及 TinyMCE 代码清理。 我的解决方案是临时创建一个新文件,在其中将 TinyMCE 字段的输入直接写入源代码,在 C# 中读取它是小菜一碟。

    所需的 javascript 代码如下所示:

    setup : function(editor){
      editor.on('submit', function (){
        tinymce.triggerSave();
        document.writeln("<!DOCTYPE html><html><body><div id='content'>"+document.getElementById('textarea').value+"</div></body></html>")
        document.close()
      });
    }
    

    之后,您可以使用以下代码读取 C# 中的内容:

    webBrowser.Document.GetElementById("content").InnerHtml
    

    现在我可以将 HTML 格式的代码存储在我的 SQL 数据库中,可以使用闪亮的界面进行管理和编辑。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 2017-06-19
      • 2013-04-07
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      相关资源
      最近更新 更多