、点击 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.