扩展FCKeditor,使其具有分页功能

  扩展FCKeditor编辑器,使其具有分页功能。
  先看效果图:
  
  按以下步骤修改文件:
  一、修改配置文件:editor\fckconfig.js
  在位置(行92左右):
  FCKConfig.ToolbarLocation = 'In' ;
  增加如下内容:
  FCKConfig.PagingCode = '{0}' ; //{0}:被替换成当"页码"
  这里是保存创建分页按钮时的文本,其中的"{0}"会被替换成页码。
  二、编辑文件:editor\fckeditor.html
  1、在位置(行55左右):
  // Base configuration file.
  LoadScript( '../fckconfig.js' ) ;
  增加如下内容:
  //加载分页函数脚本
  LoadScript( 'js/paginginfo.js' ) ;
  这里是加载一个js脚本文件,用于处理相关的分页操作。
  2、在位置(行225左右):
  
  
  
  增加如下内容:
  
  
  启用数据分页
  
  添加新页
  删除当前页
  合并数据
  点击这里执行数据分页
  
  这里是增加一个新的行,用来显示分页操作的按钮和信息。
  三、向皮肤的CSS文件中增加分页按钮的样式,如默认皮肤文件是editor\skins\default\fck_editor.css,则增加以下内容:
  /*分页样式*/ #xPagingInfo { font-size:12px; padding: 2px 2px 2px 2px; border: #efefde 1px outset; background-color: #efefde; } #xPagingAnalyse { background-color:#dfdfd8; border-width:1px; border-style:outset; border-color:#f9f9f4 #474742 #474742 #f9f9f4; cursor:default; padding: 2px 5px 1px 5px; float:left; } #xPagingCreate,#xPagingDelete,#xPagingDelete { background-color:#dfdfd8; border-width:1px; border-style:outset; border-color:#f9f9f4 #474742 #474742 #f9f9f4; cursor:default; padding: 2px 5px 1px 5px; margin: 0px 5px 1px 0px; float:left; } #xPagingUnite { color:red; background-color:#dfdfd8; border-width:1px; border-style:outset; border-color:#f9f9f4 #474742 #474742 #f9f9f4; cursor:default; padding: 2px 5px 1px 5px; margin: 0px 5px 1px 0px; float:left; } #xPagingMessage { float:left; padding-left:5px; padding-top:4px; color:red; } .xPageNode1 { background-color:#dfdfd8; border-width:1px; border-style:outset; border-color:#f9f9f4 #474742 #474742 #f9f9f4; cursor:default; padding: 0px 10px 2px 10px; margin: 0px 5px 1px 0px; float:left; } .xPageNode2 { font-weight:bold; color: #ff0000; background-color:#ffffff; border-width:1px; border-style:inset; border-color:#f9f9f4 #474742 #474742 #f9f9f4; cursor:default; padding: 0px 10px 2px 10px; margin: 0px 5px 1px 0px; float:left; } 四、创建editor\js\paginginfo.js,该js用于处理分页的操作等,内容如下: var pagingData = new Array(); var pagingIndex = 0; pagingData[0] = ''; var Paging = { init: function(){ //分页初始化 if(Paging.config() != true){ alert('初始化失败。'); return; } Paging.start = window.parent.document.getElementById(Paging.edito r + '___PagingStart').value ; Paging.stop = window.parent.document.getElementById(Paging.edito r + '___PagingStop').value ; if(Paging.start.length==0 && Paging.stop.length==0){ alert('参数配置错误。'); return; } document.getElementById('xPagingAnalyse').style.di splay = 'none' ; document.getElementById('xPagingList').innerHTML = ''; document.getElementById('xPagingCreate').style.dis play = 'block' ; document.getElementById('xPagingDelete').style.dis play = 'block' ; document.getElementById('xPagingUnite').style.disp lay = 'block' ; document.getElementById('xPagingMessage').innerHTM L = '提交表单前,请先"合并数据"!'; var body = Paging.get(); body = body.replace(''+Paging.start+'',''); body = body.replace(''+Paging.stop+'',''); body = body.replace(''+Paging.stop+Paging.start+'',Pag ing.stop+Paging.start); var data = body.split(Paging.stop+Paging.start); var index = 0; for(var I = 0 ; I 0){ pagingData[index] = data ; document.getElementById('xPagingList').appendChild (Paging.node(index, data)) ; index++; } } pagingIndex=0; Paging.set(pagingData[0]) ; Paging.style(pagingIndex,true); }, create: function(data){ //创建新页 Paging.save(); if (typeof(data) != 'string') data = '' ; var index = pagingData.length ; var span = Paging.node(index, data); Paging.style(pagingIndex,false); pagingIndex = index ; pagingData[pagingIndex] = data ; Paging.set(data) ; document.getElementById('xPagingList').appendChild (Paging.node(index, data)) ; Paging.style(pagingIndex,true); }, go: function(index){ //转到页 if(index != pagingIndex && index >= 0 && index = 0 && index pagingData.length/2 ){ for ( var j=I ; j 0 ; --j ){ pagingData[j] = pagingData[j-1]; } pagingData.shift(); } } } //重新绘制分页信息 for ( var k=0; k != null && pagingData != '' && pagingData != ''){ index++; if(data == ""){ data = pagingData ; }else if(index == 2){ data = Paging.start + data + Paging.stop; data += Paging.start + pagingData + Paging.stop; }else{ data += Paging.start + pagingData + Paging.stop; } } } pagingData = new Array(); Paging.set(data); document.getElementById('xPagingAnalyse').style.di splay = 'block' ; document.getElementById('xPagingList').innerHTML = ''; document.getElementById('xPagingCreate').style.dis play = 'none' ; document.getElementById('xPagingDelete').style.dis play = 'none' ; document.getElementById('xPagingUnite').style.disp lay = 'none' ; document.getElementById('xPagingMessage').innerHTM L = '数据合并成功,您现在可以提交表单了!'; }, node: function(index,data){ //private var span = document.createElement('span') ; span.id = 'xPage_' + index ; span.className = 'xPageNode1' ; if (typeof(data) != 'string') data = '' ; span.attachEvent("onclick",function(){Paging.go(in dex);}); span.innerHTML = FCKConfig.PagingCode.replace('{0}',index + 1) ; return span; }, set: function(data,mode){ //private var left = new RegExp("^(( )|()|(/n)|( ))*"); var right = new RegExp("(( )|()|(//n)|( ))*$"); data = data.replace(left,''); data = data.replace(right,''); FCKeditorAPI.GetInstance(Paging.editor).SetHTML(da ta,mode) ; }, get: function(){ //private return FCKeditorAPI.GetInstance(Paging.editor).GetXHTML(t rue) ; }, style: function(index,mode){ //private var list = document.getElementById('xPagingList') ; if(index >= 0 && index = 0 && pagingIndex 1){ alert('请先点击"合并数据"按钮,然后再提交表单。'); return false; } }, config: function(){ //private var iframes = window.parent.frames; for(var i=0 ; I .document.getElementById('xPagingAnalyse') ; var obj2 = document.getElementById('xPagingAnalyse'); if(obj1 == obj2){ Paging.editor = iframes.name.split('___')[0] ; return true; } } return false; } } window.parent.document.forms[0].attachEvent("onsub mit", Paging.submit);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值