Javascript 从CKEditor获取格式化的HTML
我在我的web应用程序中使用了CKEditor,我不知道如何使用HTML格式获取编辑器的内容Javascript 从CKEditor获取格式化的HTML,javascript,html,ckeditor,Javascript,Html,Ckeditor,我在我的web应用程序中使用了CKEditor,我不知道如何使用HTML格式获取编辑器的内容 var objEditor = CKEDITOR.instances["sectionTextArea"]; var q = objEditor.getData(); 这将获得在CKEditor中输入的文本,而不带任何标记 但是, var q = objEditor.getHTML(); 将返回空值。我做错了什么?getHTML不是CKEditor对象的方法,因此应该有一个javascript错误,
var objEditor = CKEDITOR.instances["sectionTextArea"];
var q = objEditor.getData();
这将获得在CKEditor中输入的文本,而不带任何标记
但是,
var q = objEditor.getHTML();
将返回空值。我做错了什么?getHTML不是CKEditor对象的方法,因此应该有一个javascript错误,而不是null
api定义的方法是,如果不起作用,那么代码中还有其他问题,请尝试使用警报来验证此时的内容。请使用以下行更新ckeditor config.js
config.fullPage = true;
当您请求getData时,这将返回完整的html 要从编辑器中获取htmlData,应使用以下代码段:
var htmldata = CKEDITOR.instances.Editor.document.getBody().getHtml();
如果此解决方案不起作用,请检查是否已卸载BBCode插件。对于Java用户
按下submit按钮后,请求通过HTTP Post方法进行。此Post请求还包含使用textarea的name属性命名的参数中的格式化html
所以,如果你的文本区域像
然后,按下提交按钮后,您可以通过以下方式在servlet/控制器中获得格式化的html:
String htmlContent = request.getParameter("editor1");
您还可以将这个包含格式化html“htmlContent”的变量传递给ITEXT或其他一些pdf转换器来创建pdf…我意识到这是一个老问题,但我很难找到有意义的答案并返回实际的html,包括图像。如果您的ckeditor实例附加到textarea,您可以简单地获取textarea的值以获取HTML 例如,如果您正在使用jQuery:
$('#my_editor').val()
无需深入研究API。只需知道正确的方法是getData对我没有帮助。我不知道如何在CKEditor对象上使用它。而且CKEDITOR.getData不起作用 以下是如何在CKEDITOR对象上使用getData:
CKEDITOR.instances.my_editor.getData()
…其中my_editor是用于CKEditor的文本区域的id。
与之相反的是setData:
我正在使用预览插件获得完整的HTML内容,希望它能有所帮助 CKEDITOR.getFullHTMLContent=函数编辑器{ var-cnt=; 编辑器。一旦“内容预览”,函数E{ cnt=e.data.dataValue; 返回false; }; execCommand'preview'; 返回cnt; } 这对我很有用:
CKEDITOR.instances["id"].getData()
试试这个:
CKEDITOR.instances.YOUREDITOR.element.getHtml();
使用CKEDITOR.instances.YOUREDITOR.element选择DOM元素,如果使用
CKEDITOR.instances.YOUREDITOR.element.getHtml;
您可以从编辑器元素获取所有html。如果您有两个CKEditor,您可以使用下面的代码:
HTML
在ckeditor 5中,可以使用editor.getData获取html数据
以下是一个例子:
分类编辑器
.create document.querySelector“editor”
.然后编辑=>{
console.logeditor.getData;
}
.catch错误=>{
控制台错误;
} ;
我在编辑器中使用了插入媒体功能。getData没有返回显示视频缩略图图标所需的HTML。以下内容帮助我获得了最终的HTML:
$.ck-content.htmlIf如果您的意思是他们应该使用一些console.log,那么您应该意识到用户试图使用一个不存在的方法,因此如果他查看了控制台,就会看到错误。与其向他解释关于如何调试javascript以及可能需要安装额外插件或切换浏览器的所有细节,还记得他四年前问过这个问题,防弹方法是使用提供信息的警报,无需进一步解释。IMHO,使用警报进行调试是一种非常糟糕的做法,不应鲁莽地告知任何人。因为这是一个众所周知的资源,特别是对于初学者来说,所以如果我写下:或者学习如何使用合适的浏览器调试javascript,对您来说会更好?那没用。警报始终在每个浏览器中工作,无需任何要求。我很想看到你四年前在手机上调试一个网页时没有警报。@Wolle使用警报而不是console.log对初学者很好,因为你可以在使用警报时暂停执行,如果是console.log,则必须使用debugger关键字来暂停执行。console.log和alert都有自己的优点。我知道大多数初学者使用alert而不是console.log,但这并不是一个坏习惯,只是不要在生产环境中使用它,如果它不好,浏览器会删除它。异常文档未定义请记住,您应该用实例名替换编辑器,例如,在我的例子中,它是:CKEDITOR.instances.sfw_fc_fccd_e2_dui27_fcUse_fccd_e16_dui27_fcUse_fccd_e2_dui31_tbTextGeneratorUse.getData,因为我在ASP.Net中使用它,而安装名称是sfw_fc_fccd_e2_dui27_fccd_e16_dui27_fccd_fcUse_fccd_e2;_dui31_textGeneratorUse。这对我不起作用。如果没有修改,文本区域中似乎没有数据,所有数据都在iF中
我不知道该告诉你什么。我在生产部工作。也许您还需要使用jquery命令来创建它$j‘元素’编辑;请不要只加一行。请解释您的答案。对不起,选择编辑器时,您可以使用elemtDom=CKEDITOR.instances.yourdeditor.element选择元素域;并使用getHtml从该元素获取HTML;因此,您可以使用**CKEDITOR.instances.yourdeditor.element.getHtml**
CKEDITOR.instances.YOUREDITOR.element.getHtml();
<textarea name="editor1"></textarea>
<textarea name="editor2"></textarea>
CKEDITOR.replace( 'editor1' );
CKEDITOR.replace( 'editor2' );
var objEditor1 = CKEDITOR.instances["editor1"];
alert(objEditor1.getData()); // get html data
var objEditor2 = CKEDITOR.instances["editor2"];
alert(objEditor2.getData()); // get html data