1、点击FCKeditor上的插入图片时,从地址栏中知道,是访问的brower.html
2、brower.html使用了框架。左侧使用frmFolder.html,主工作区使用frmresourceslist.html。
在brower中调用了fckxml.js,这是一个AJAX的封装,用来向服务器发送Command.
3、服务器端通过portal-impl/com.liferay.portal.editor.fckeditor.**来响应。
具体来说:GetFoldersAndFilesCommand.execute 会通过工厂方式来产生一个CommandReceiver,共有三类Receiver, ImageCommandReceiver, DocumentCommandReceiver, PageCommandReceiver. 也就是说,可以插入三类资源,图片,文档,页面链接。
【注意】liferay 4.3.3时,ImageCommandReceiver, DocumentCommandRecievier的_getFolder方法有Bug,需要在开始时,将folderName进行UTF-8编码转换,否则不支持中文字符。smilingleo原创
4、在服务器端向客户端返回相应之后,客户端通过CallBack函数来进行内容处理,比如frmfolders.html中的GetFoldersCallBack,就是打开选中的Folder.