当前位置: 首页 > 编程笔记 >

fckeditor编辑器下的自定义分页符实现方法

许博
2023-03-14
本文向大家介绍fckeditor编辑器下的自定义分页符实现方法,包括了fckeditor编辑器下的自定义分页符实现方法的使用技巧和注意事项,需要的朋友参考一下

这里小牛知识库小编参考了几篇文章特为大家整理下,用到的朋友多支持一下了。

进行长文章分页,编辑人员在控制分页符的时候手工插入很麻烦,所以修改了FCK的插入分页符的插入字符:
修改方法:
打开/editor/js/
找到fckeditorcode_gecko.js和fckeditorcode_ie.js
因为fck有二个js文件。fckeditorcode_gecko.js是针对非ie的。一个是针对ie的。所以我们需要更改二个js的文件。
这样方便我们以后插入分页时,就不需要那么一大串的了。
找到:
var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('Div')
以及其后字符,修改为你自己的分页符即可

fck分页符修改

     FKC默认添加的分页符为:<div style="page-break-after: always"><span style="display: none">&nbsp;</span></div>

      对文章的分页,我是运用String.split("分页符")方法,将文章以分页符为分割点,返回一个String类型的数组,但是双引号不能够相互嵌套,split()方法中的参数就没办法设置。
      如何修改默认的分页符:

      找到js文件:在/fckeditor/editor/js/目录下,需要修改的有两个js文件:fckeditorcode_ie.js(针对IE浏览器的配置)、fckeditorcode_gecko.js(针对非IE浏览器的配置)。
      在js文件中找到如下代码,并做修改:

  var FCKPageBreakCommand=function() 
   {this.Name='PageBreak';}; 
  FCKPageBreakCommand.prototype.Execute=function() 
   {FCKUndo.SaveUndoStep(); 
  var e=FCK.EditorDocument.createElement('DIV'); //这里是创建<div>标签,此处不用修改 
  e.style.pageBreakAfter='always';       //这里是为<div>添加样式,把它删掉; 
  e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>'; 
//这里是在<div>中添加的内容,修改一下; 我的是修改为e.innerHTML='[jb51page]'; 也就是仅有一个空格;

      保存,重新添加文章,添加文章时看不出变化,保存看查看数据,分页符的位置变为: <div>[jb51page]</div>
      为文章分页就可以用split("<div>[jb51page]</div>")方法进行拆分显示了;

以下是参考了dedecms的方法:
大家在修改的时候一定要看清原来的fckeditor分页的写法,千万不要直接覆盖,容易出问题。

dedecms的方法:


var FCKPageBreakCommand=function(){this.Name='PageBreak';};

FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();

var e=FCK.EditorDocument.createElement('P');e.innerHTML='[jb51page]';

小牛知识库用的方法:


var FCKPageBreakCommand=function(){this.Name='PageBreak';};

FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();

FCK.EditorDocument.selection.createRange().text='[jb51page]';

注意:由于我们使用的版本,有FCKUndo.SaveUndoStep();如果不带出现了编辑器无法显示的情况。大家根据需要修改。

后面发现了dedecms增加的小功能,里面的函数不错可以参考下

var FCKLineBrCommand=function(){this.Name='LineBr';};
FCKLineBrCommand.prototype.Execute=function(){FCK.EditorDocument.selection.createRange().pasteHTML("<br/>");};
FCKLineBrCommand.prototype.GetState=function(){return 0;}

var FCKQuoteCommand=function(){this.Name='Quote';};
FCKQuoteCommand.prototype.Execute=function(){
	var quoteString = "<table style='border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted' cellspacing=0 cellpadding=6 width='95%' align=center border=0>\r\n";
 quoteString += "<tr><td style='word-wrap: break-word' bgcolor='#fdfddf'>\r\n<font color='#FF0000'>以下为引用的内容:</font><br>\r\n";
 quoteString += "</td></tr></table>\r\n";
	FCK.EditorDocument.selection.createRange().pasteHTML(quoteString);
};
FCKQuoteCommand.prototype.GetState=function(){return 0;}
 类似资料:
  • 本文向大家介绍thinkPHP3.2实现分页自定义样式的方法,包括了thinkPHP3.2实现分页自定义样式的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP3.2实现分页自定义样式的方法。分享给大家供大家参考,具体如下: 下面是一个Tp3.2的自定义分页,这个方法也是在看过一个网友的博客之后受到启发这么写的。经过了一些修改,大家在看到代码之后也可以进行修改自定义样式;

  • 本文向大家介绍Django 自定义分页器的实现代码,包括了Django 自定义分页器的实现代码的使用技巧和注意事项,需要的朋友参考一下 为什么要实现分页? 在大部分网站中分页的功能都是必要的,尤其是在后台管理中分页更是不可或缺 分页能带给用户更好的体验,也能减轻服务器的压力 对于分页来说,有许多方法都可以实现 例如把数据全部读取出来在前端用javascript实现,但这样一次请求全部数据服务器压力

  • 本章介绍: Decoder Encoder 单元测试 本章讲述 Netty 中如何轻松实现定制的编解码器,由于 Netty 架构的灵活性,这些编解码器易于重用和测试。为了更容易实现,使用 Memcached 作为协议例子是因为它更方便我们实现。 Memcached 是来自 Memcached.org 的免费开源、高性能、分布式的内存对象缓存系统,其目的是加速动态 Web 应用程序的响应,减轻数据库

  • 本文向大家介绍Yii视图操作之自定义分页实现方法,包括了Yii视图操作之自定义分页实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii视图操作之自定义分页实现方法。分享给大家供大家参考,具体如下: 1. 视图文件调用cgridview,clistview时候调用自定义的分页方法 2. 复制基类分页类文件,做修改成为自己的分页方法 framework/web/widgets/pag

  • 本文向大家介绍angularjs+bootstrap实现自定义分页的实例代码,包括了angularjs+bootstrap实现自定义分页的实例代码的使用技巧和注意事项,需要的朋友参考一下 目前在做一个java web页面,没有使用到框架的分页,所以需要自己实现分页,就想到了用angularjs来实现分页,数据通过ajax从后台获取。 插件 百度了一下,看到一个比较漂亮的插件,就直接用该插件,并修改

  • 本文向大家介绍C#编程实现自定义热键的方法,包括了C#编程实现自定义热键的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#编程实现自定义热键的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。