从C#中的webBrowser元素获取(更改)textarea内容

时间:2015-02-04 15:27:20

标签: c# windows forms tinymce textarea

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

我使用Windows Forms GUI创建了一个小型C#应用程序,它使用webBrowser元素显示嵌入了TinyMCE编辑器的HTML文件 - 这样我就可以获得一个可以自定义编辑器功能的漂亮窗口,我可以完美地满足我的需求项目。 我可以为这个编辑器窗口设置textarea输入而不会出现问题,这要归功于stackoverflow上发布的这个解决方案:https://stackoverflow.com/a/16322324/3498545

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

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

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

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

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