gpt4 book ai didi

javascript - 如何使用 CKEditor 从 HTML 获取 RTF?

转载 作者:行者123 更新时间:2023-11-28 07:59:27 25 4
gpt4 key购买 nike

我有一个非常好的多个 CKEditor 文本区域的结构,当单击提交按钮时,我让用户从 JavaScript 提示复制/粘贴 HTML。

但是,我想要 RTF 而不是 HTML。我是否需要另一个 JavaScript 插件,或者可以使用 CKEditor 来完成吗?


这是我的代码:

<!DOCTYPE html>
<html>
<head>
<title>CKEditor Test</title>

<style type="text/css">
.container {
margin-left: 30%;
}
</style>
</head>
<body>
<div class="container">
<form>
<textarea class="ckeditor" name="ckeditor1">
</textarea>
<input type="submit" value="submit" />
</form>

<form>
<textarea class="ckeditor" name="ckeditor2">
</textarea>
<input type="submit" value="submit" />
</form>

<form>
<textarea class="ckeditor" name="ckeditor3">
</textarea>
<input type="submit" value="submit" />
</form>
</div>
<script src="ckeditor_4.4.4_basic\ckeditor\ckeditor.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(".ckeditor").each(function() {
CKEDITOR.replace($(this).attr("name"));
CKEDITOR.config.width = 500;
});

$("form").submit(function(e) {
e.preventDefault();

var textarea = $(this).find("textarea:first");
var name = $(textarea).attr("name");

// forcing the textarea to update:
CKEDITOR.instances[name].updateElement();

var text = textarea.html();
window.prompt("Copy to clipboard: Ctrl+C, Enter", text);
});
</script>
</body>
</html>


...它看起来像什么: multiple textareas with CKEditor


...以及一些示例 HTML 输出(来自上面屏幕截图中的文本):

&lt;p&gt;some top-level text&lt;/p&gt;&lt;ul&gt;&lt;li&gt;a sub-item&lt;/li&gt;&lt;li&gt;another sub-item&lt;/li&gt;&lt;/ul&gt;



注意:我正在使用 the basic version of CKEditor ,并在 config.js 中使用此行禁用了一些按钮:

config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript,Link,Unlink,About';

最佳答案

可以用CKEditor来完成。这个想法是在编辑后将 CKEditor 生成的 HTML 转换为 RTF。可以在这里找到相关的灵魂:https://stackoverflow.com/a/155112/4776207 .

我承认有两个缺点,但对于您的情况来说,它仍然是一个完全足够的解决方案。

  1. 解决方案是在 C# 中但是即使没有 C# 知识,转换到 JS 也是相当简单的,如果你猜的话
    result = System.Text.RegularExpressions.Regex.Replace(result,
    @"<( )*br( )*>", "\r",
    System.Text.RegularExpressions.RegexOptions.IgnoreCase);
    转换为
    result = result.replace(/<( )*br( )*>/gi, "\r");
    因此,只需几分钟即可将函数转换为 JS。

  2. 正则表达式可能不是处理 HTML 的合适工具,好的,但是对于您的用例来说,它需要能够处理非常有限的 html 标签集,它足够强大。您甚至可以放弃大部分转换功能。

关于javascript - 如何使用 CKEditor 从 HTML 获取 RTF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25610825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com