欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CKEditor/FCKEditor 使用FCKeditor 2.6.5 快速使用教程(含插入图片)

程序员文章站 2022-06-23 21:49:33
其开源协议是基于 gpl, lgpl 和 mpl 的。官方网站:http://ckeditor.com/ 一般来说,我们在编辑内容时,先是读入到 textarea,再将 t...
其开源协议是基于 gpl, lgpl 和 mpl 的。官方网站:http://ckeditor.com/

一般来说,我们在编辑内容时,先是读入到 textarea,再将 textarea 的内容赋给编辑器。因为直接把内容作为字符串给编辑器的 value 属性赋值使用的是 javascript 代码,要让 js 代码不受内容中双引号、换行等的干扰,只有先读入到 textarea 最方便。

使用 fckeditor 2.6.5
复制代码 代码如下:

<div><textarea id="fckcontent" name="content">cftea</textarea></div>
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script type="text/javascript">
<!--
var ofckeditor = new fckeditor("fckcontent");
ofckeditor.basepath = "fckeditor/"; // fckeditor 文件夹位置。
ofckeditor.create();
//-->
</script>

本来应该用 display:none 将 textarea 隐藏起来,不过为了查看效果,这里不隐藏。

这样编辑器就自动与 fckcontent 关联起来了,打开网页时 fckeditor 自动读取 textarea 的内容,提交时又自动将其内容(自动为 xhtml)赋给 textarea。

注意,我们 textarea 的 id 和 name 值不一样,为什么呢?

这里应该是这个版本不太完善的地方,如果我们把 textarea 的 id 和 name 值设置为一样,那么 fckeditor 文本区的 name 值也是 content,在服务器端 request.form("content").count 就会有两个,我们服务器端取值就稍稍有点不方便,得用 request.form("content")(0)。如果我们将 id 设为 fckcontent,那么 fckeditor 文本区的 name 就是 fckcontent,与 textarea 不同名。

设置编辑器宽高

var ofckeditor = new fckeditor("fckcontent", 500, 300);

复制代码 代码如下:

var ofckeditor = new fckeditor("fckcontent");
ofckeditor.width = 500;
ofckeditor.height = 300;

设置工具条

var ofckeditor = new fckeditor("fckcontent", 500, 300, "basic");
注意第四个参数,其可选值有 basic、default,注意大小写不可搞错,分别表示基本工具条、默认工具条(全部按钮)。

设置初始值、设置值、取值

设置初始值

实际上设置初始值很少用,因为一般都是与 textarea 关联的,故只是简单列出来一下,不深究。说明一下,如果关联的 textarea 存在,则赋初始值是没有用的。

var ofckeditor = new fckeditor("fckcontent2", 500, 300, "default", "");

复制代码 代码如下:

var ofckeditor = new fckeditor("fckcontent2", 500, 300, "default");
ofckeditor.basepath = "fckeditor/";
ofckeditor.value = "cftea"; // 必须在 create 之前
ofckeditor.create();

设置值

若要演示此示例,最好是放在按钮的事件处理程序中,目的是有些延迟,否则会说 fckeditorapi 未定义。
复制代码 代码如下:

var oeditor = fckeditorapi.getinstance("fckcontent");
oeditor.sethtml("");

取值

若要演示此示例,最好是放在按钮的事件处理程序中,目的是有些延迟,否则会说 fckeditorapi 未定义。
复制代码 代码如下:

var oeditor = fckeditorapi.getinstance("fckcontent");
alert(oeditor.getxhtml()); // 还有个类似方法是 gethtml,但不推荐用 gethtml。

您这样做很危险:
复制代码 代码如下:

var oeditor = fckeditorapi.getinstance("fckcontent");
oeditor.sethtml("");
alert(oeditor.getxhtml()); // 这里的值并不一定是上一句赋的值。因为他们太近了,值还没来得及赋,就已经 alert 了。

插入图片

若要演示此示例,最好是放在按钮的事件处理程序中,目的是有些延迟,否则会说 fckeditorapi 未定义。

fckeditorapi.getinstance("fckcontent").inserthtml("<img src...>");