fckeditor编辑器下的自定义分页符实现方法(fckeditor编辑器任意文件上传漏洞 jsp)这都可以?

随心笔谈9个月前发布 admin
204 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了如何修改FCK编辑器(Firefox Community Kit)的默认分页符,以便更方便地控制文章分页。以下是总结: 1. **默认分页符问题**: FCK默认分页符为`<div style="page-break-after: always"><span style="display: none">空格</span></div>`,使用`split("分页符")`方法分割文章,但因双引号嵌套问题无法直接使用。 2. **修改分页符方法**: - 在FCK的JS文件(`fckeditorcode_gecko.js`和`fckeditorcode_ie.js`)中,修改`FCKPageBreakCommand`的执行代码,将分页符修改为`[jb51page]`。 - 修改后,使用`split("<div>[jb51page]</div>")`即可正确分页。 3. **实现效果**: 修改后,分页符不会影响文章显示,用户可以方便地根据需求添加分页,不会出现编辑器显示但保存后未变化的情况。 4. **参考方法**: 同时参考了Dedecms的方法,提供了另一种实现思路,但需注意`FCKUndo.SaveUndoStep()`的使用。 这篇文章通过代码修改解决了分页符插入的复杂问题,提供了实用的解决方案。



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

进行长文章分页,编辑人员在控制分页符的时候手工插入很麻烦,所以修改了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”> </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”> </span>’;
//这里是在<div>中添加的内容,修改一下; 我的是修改为e.innerHTML='[jb51page]’; 也就是仅有一个空格;

      保存,重新添加文章,添加文章时看不出变化,保存看查看数据,分页符的位置变为:

[jb51page]

      为文章分页就可以用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;}

您可能感兴趣的文章:Smarty中调用FCKeditor的方法FCKeditor smarty 编辑器的应用PHP实例(Smarty+FCKeditor新闻系统)fckeditor粘贴Word时弹出窗口取消的方法FCKeditor + SyntaxHighlighter 让代码高亮着色插件探讨fckeditor在Php中的配置详解将FCKeditor导入PHP+SMARTY的实现方法

© 版权声明

相关文章