Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从CKEditor获取格式化的HTML_Javascript_Html_Ckeditor - Fatal编程技术网

Javascript 从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错误,

我在我的web应用程序中使用了CKEditor,我不知道如何使用HTML格式获取编辑器的内容

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