我正在尝试在 Winform 应用程序中使用 CKEditor 在 Sql Server 数据库中加载、操作和存储 HTML 内容。
我发现了这篇关于如何将 CKEditor 引入 winform 的精彩文章:
Can the CKEditor be used in a WinForms application for (X)HTML editing?
但是,它没有详细说明如何加载 HTML 内容或在用户操作后提取它。
我已经尝试过:
webBrowser1.Document.GetElementById("editor1").InnerText;
但是,它返回加载到编辑器中的初始数据,在用户操作后,它仍然返回相同的值。
如果有人可以使用一些代码来扩展上面链接中的答案,这些代码会加载一些内容的编辑器,以及一些在 WinForm 应用程序中显示消息框及其当前内容的代码,我将非常感激。我怀疑它需要在最初打开的 html 文件中添加更多 JavaScript,但我对 JavaScript 一无所知,而且我花了几天时间试图尝试它,但没有成功。
提前致谢。
最佳答案
在今天的一些更多研究中,我能够回答我自己的问题...... 我加载到网络浏览器控件的空白 HTML 设置文件如下所示:
<html>
<head>
<script src="http://cdn.ckeditor.com/4.4.7/full/ckeditor.js"></script>
</head>
<script>
var editor1, html = '';
function createEditor() {
if ( editor1 )
return;
// Create a new editor instance inside the <div id="editor1"> element,
// setting its value to html.
var config = {};
editor1 = CKEDITOR.appendTo( 'editor1', config, html );
}
function getHtml() {
if ( !editor1 )
return;
html = editor1.getData();
return html
}
function setHtml(vsHtml) {
if ( !editor1 )
return;
editor1.setData(vsHtml)
}
</script>
<div id="editor1"></div>
</html>
C# 代码如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HTMLEditor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load_1(object sender, EventArgs e)
{
webBrowser1.Navigate("C:\\AMResearch\\HTMLEditor\\blank.html");
Application.DoEvents();
}
private void button1_Click_1(object sender, EventArgs e)
{
webBrowser1.Document.InvokeScript("createEditor");
}
private void button2_Click(object sender, EventArgs e)
{
string sHtml;
sHtml = (string)webBrowser1.Document.InvokeScript("getHtml");
MessageBox.Show(sHtml);
}
private void button3_Click(object sender, EventArgs e)
{
Object[] objArray = new Object[1];
objArray[0] = "<p>Hellow World!</p>";
webBrowser1.Document.InvokeScript("setHtml", objArray);
}
}
}
关于javascript - 在 C#.net Winform 应用程序中获取和设置 CKEditor HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31119631/