说明:以下说到的方法是本人经过实际开发中的一些经验和总结如果有更好的建议欢迎PS
1)关于FCK整合到你的项目中需要设置的地方这里就不做说明了,网上一搜大把。有一点要说明的是上传中文图片。网上也有很多类似的解决方法。去搜下就有啦。
直接进入正题:FCK 编辑器使用
2)如何创建一个FCK实例:
@一般有两种比较实用的方法,一种使用脚本语言创建,这种方法的好处是如果你的页面上需要多个FCK编辑器的话可以使用这种方法,在下面的内容中会涉及到用这种方法创建的好处。还有一种方法是实用FCK标签。代码如下:
<FCK:editor id="fckName" basePath="fckeditor/"
imageBrowserURL="${ctx}/fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"
linkBrowserURL="${ctx}/fckeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"
flashBrowserURL="${ctx}/fckeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"
imageUploadURL="${ctx}/fckeditor/editor/filemanager/upload/simpleuploader?Type=Image"
linkUploadURL="${ctx}/fckeditor/editor/filemanager/upload/simpleuploader?Type=File"
flashUploadURL="${ctx}/fckeditor/editor/filemanager/upload/simpleuploader?Type=Flash">
content
</FCK:editor>
使用标签创建的FCK可以很好的显示一个FCK编辑器实例。
2)不同场景的应用。如果有个需求需要你在一个页面上显示多个FCK。并且要取得每个FCK里的值传入后台存入数据库中。在进行编辑的时候能把存入数据库中的值取出来在FCK中进行显示。
2.1)根据上面的需求大致可以确定有以下几个工作需求做,a:在一个页面上显示多个FCK文本编辑器。b:在用户编辑完成后提交把FCK编辑器里的值取出来传入后台并进行持久化。c:当进行编辑操作时,能够取出数据库中的值并在FCK上进行显示。把问题细化之后我们就可以一步一步来解决。当然这里可以用前面提到的两种方法创建多个FCK读者。当然用哪种方法进行显示都是没有问题的。关键是要同时完成者三步哪种方法是最好的,最容易实现的呢?经过我多次试验,我建议使用脚本进行FCK的编程是最有效也是最简单的。当然只是完成我说的这些工作,至于其他的未提到的我就不做建议了免的拍砖。
2.2)a创建FCK我用的是window.onload调用FCK进行显示,当然根据不同的应用场景也可以换做一个点击事件或者。。。。。。
<textarea cols="60" rows="6" name="FCK_Instancet"></textarea>
<SCRIPT LANGUAGE="JavaScript">
window.οnlοad=function(){
var fck = new FCKeditor("FCK_Instance");
fck.BasePath = "fckeditor/" ;
//fck.ReplaceTextarea();
fck.ToolbarSet = 'Default';
fck.CreateHtml();
}
</SCRIPT>
这样就可以创建一个FCK实例了。
b如何通过ID拿到FCK,FCK在加载完成时会把自己当做一个对象传入下面这个方法,这个方法很有用。
var dArray = new Array();//存储多个FCK实例
function FCKeditor_OnComplete(editorInstance)
{
alert(editorInstance.Name);
dArray.push(editorInstance.Name);//存储FCK的实例名这样就可以根据不同的FCK InstanceName来拿到不同的FCK。
}
function getFckXthml()
{
for(var i=0;i<dArray.length;i++){
if(typeof(dArray[i])=='instanceName')
var fckList = FCKeditorAPI.GetInstance(dArray[i]);
fckList.GetXHTML(true);
else
break;
}
}
未完:)