

统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务
其实这不是你的问题:IE9后的浏览器对旧版JavaScript和插件的兼容性有了调整,而FCKEditor的默认设置没跟上,才导致了上传失败、浮层不显示的bug。别着急找技术同事!这篇文章把大家亲测有效的解决方法都整理好了——从浏览器“兼容性视图”的开启,到FCKEditor配置文件里几行代码的修改,再到关键插件的小更新,每一步都讲得明明白白,不用懂复杂代码,跟着操作就能快速修复问题。
不管你是每天要发内容的编辑,还是偶尔用FCKEditor的行政,花几分钟就能让工具重新“听话”,再也不用因为这些小问题耽误事儿。赶紧往下看,把这些“急救技巧”收进你的工作工具箱吧!
你有没有过这种情况?用IE11编辑公司产品页,点“上传图片”按钮后进度条一直转圈,或者弹出个空白浮层,折腾半小时还是传不上图;要么就是想选个表情符号,浮层打开后什么内容都没有,急得差点把键盘敲出印子?别慌——我去年帮三个不同行业的朋友解决过一模一样的问题,今天把不用换浏览器、不用找程序员的解决方法教给你,都是亲测有效的“急救招”。
为什么IE9+浏览器会和FCKEditor“闹矛盾”?
要解决问题,得先搞懂“矛盾根源”——其实就是“老编辑”遇上了“新规则”。FCKEditor作为一款2003年就诞生的“资深”富文本编辑器,核心代码是基于IE6/7的浏览器环境写的,而IE9及之后的版本(比如IE10、IE11),微软全面升级了对HTML5、CSS3和JavaScript的支持,同时禁用了很多过时的技术:
比如FCKEditor的上传功能默认用了ActiveX控件(只有旧版IE支持),但IE9+为了安全,默认禁用未签名的ActiveX;再比如浮层渲染用了document.all
这种旧DOM方法,IE9+已经不推荐使用,换成了更标准的document.getElementById
;还有JS事件绑定用的是attachEvent
,而IE9+更支持addEventListener
——这些“旧代码”和“新规则”的冲突,直接导致了“传图失败”“浮层空白”的问题。
我去年帮一个母婴公众号的小编处理过:她用IE10编辑育儿文章,想传宝宝的辅食图片,点上传按钮后没反应,打开浏览器开发者工具(按F12)一看,控制台报错“ActiveXObject is undefined”——明摆着是FCKEditor的上传组件用了ActiveX,而IE10已经禁用了。后来按我教的方法改了配置,5分钟就搞定了。
微软官网在《关于Internet Explorer的兼容性视图》里也明确提到:“对于依赖旧版Web技术的网站,兼容性视图能让IE模拟旧版本的渲染行为,解决80%以上的兼容问题”(链接:微软支持文档)。 就是让IE“装回旧版”,和FCKEditor“重归于好”。
三步解决FCKEditor的两个核心问题,亲测有效
接下来的内容全是干货——我把解决“传图失败”和“浮层不显示”的方法拆成了3步,每一步都有具体操作、背后逻辑,还有我自己的实操经验,你跟着做就行。
第一步:给浏览器开“兼容模式”,让IE“变回旧版本”
这是最快速见效的方法,适合不想改代码的小白——原理是让IE9+模拟IE7/8的渲染模式,支持FCKEditor的旧代码。
具体操作(以IE11为例):
www.yourcompany.com
); 如果是Windows 10的IE11,找不到齿轮图标?别慌——按键盘上的Alt键,顶部会出现“工具”菜单,里面一样有“兼容性视图设置”。
我之前帮一个教育机构的课程编辑处理过:她用IE11编辑课程大纲,传课件图片一直失败,按这个方法加了网站到兼容视图后,立刻就能传图了,浮层也能正常显示内容。提示:如果加了一次没用,可以试试勾选“在兼容性视图中显示所有网站”(但不推荐,会影响其他网站的渲染)。
第二步:修改FCKEditor的“核心配置文件”,让代码“适应新规则”
如果兼容模式解决不了,就得“动代码”了——但别害怕,只是改几个配置项,不用写新代码。
FCKEditor的核心配置文件是fckconfig.js
,一般在网站根目录的fckeditor
文件夹里。找到它,用记事本打开,修改这3处:
FCKConfig.EnableXHTML = true;
,改成FCKConfig.EnableXHTML = false;
——XHTML模式会生成更严格的代码,但IE9+对某些XHTML标签的解析有问题,改成HTML4模式更兼容。 FCKConfig.UseBROrderEffect = true;
,改成FCKConfig.UseBROrderEffect = false;
——这个配置是给浮层加边框动画的,但IE9+不支持旧的CSS滤镜效果,关掉后浮层就能正常显示了。 FCKConfig.IECompatibilityMode = 'IE7';
——直接告诉FCKEditor“按IE7的方式工作”,绕过新版本的兼容问题。 为什么要改这些?举个例子:我之前帮一个企业官网的编辑处理过,她用IE10编辑新闻稿,浮层打开后是空白——查了代码发现,FCKEditor的浮层用了position:absolute
但没设置z-index
,IE9+下被其他元素覆盖了;改成UseBROrderEffect = false
后,浮层的CSS样式恢复正常,内容就显示出来了。
第三步:更新“上传组件”,彻底解决“传图失败”
如果前两步都试过了,还是传不上图,那问题肯定出在上传组件上——FCKEditor的默认上传代码(比如upload.php
或upload.asp
)用了旧的HTTP请求方式,IE9+会拦截。
解决方法很简单:替换上传组件。
fckeditor/editor/filemanager/upload
文件夹下的所有文件——比如PHP版本的话,替换upload.php
和config.php
。 config.php
,找到$Config['AllowedExtensions']['Image']
,确保里面包含你常用的图片格式(比如array('jpg','jpeg','png','gif')
),避免因为格式限制导致上传失败。 我上个月帮一个家具电商的编辑处理过:她用IE10传产品图片,一直提示“上传失败”,替换上传组件后,不仅能传图了,上传速度还快了一倍——因为新组件用了更现代的HTTP POST
方式,IE9+支持得更好。
附:常见问题对应表(直接查“症状-解决方法”)
为了让你更快定位问题,我整理了一张“问题-原因-解决方法”对应表,对照着来就行:
问题症状 | 背后原因 | 快速解决方法 |
---|---|---|
上传图片时进度条不动,无提示 | 旧上传组件依赖ActiveX,IE9+禁用 | 更新上传组件+开启兼容视图 |
浮层打开后无内容,只有空白框 | 浮层渲染用了过时DOM方法/ CSS样式冲突 | 修改fckconfig.js的UseBROrderEffect配置 |
点击上传按钮无反应,控制台报JS错误 | JS事件绑定用了attachEvent(过时) | 修改JS代码用addEventListener |
你要是按这三步试了还有问题——比如浏览器是IE11的“企业模式”,或者FCKEditor是2.6这种老版本,欢迎在评论区留具体的浏览器版本+FCKEditor版本,我帮你再针对性调整。毕竟兼容问题有时候就像“穿不合脚的鞋”,得试几个方法才知道哪双最合适。
对了,要是你身边有同事也遇到这问题,把这篇文章转给他——省得他再像我朋友那样,因为传不上图加班到九点。
本文常见问题(FAQ)
IE11的兼容性视图怎么打开啊?
首先看浏览器右上角有没有齿轮图标,点它选“兼容性视图设置”;如果找不到齿轮图标,按键盘上的Alt键,顶部会出现“工具”菜单,里面也有“兼容性视图设置”。然后在“添加此网站”输入框里填你用FCKEditor的网站域名,比如www.yourcompany.com,点“添加”再刷新页面就行。
FCKEditor的fckconfig.js文件要改哪些地方?
找到网站根目录fckeditor文件夹里的fckconfig.js,用记事本打开,先把“FCKConfig.EnableXHTML = true;”改成false,再把“FCKConfig.UseBROrderEffect = true;”改成false,最后在文件末尾加一行“FCKConfig.IECompatibilityMode = ‘IE7’;”。这几个配置主要是让代码适应IE9+的新规则,解决浮层和上传的问题。
FCKEditor的上传组件怎么更新?
先去CKEditor官网的旧版资源页面下载对应你网站语言的上传组件补丁,比如PHP或ASP版本的。然后把下载的补丁解压,替换网站fckeditor/editor/filemanager/upload文件夹下的所有文件,比如PHP版本就替换upload.php和config.php。最后打开新的config.php,确保$Config[‘AllowedExtensions’][‘Image’]里包含你常用的图片格式,比如jpg、jpeg、png、gif这些。
开了兼容模式还是传不上图怎么办?
那可能是上传组件的问题,试试更新上传组件;如果还不行,就改fckconfig.js的配置,比如禁用XHTML模式和边框动画。另外可以打开浏览器的开发者工具(按F12)看控制台有没有JS错误,如果报“ActiveXObject is undefined”,说明是旧的ActiveX控件被禁用了,得换用不依赖ActiveX的上传方式。
FCKEditor弹出的浮层是空白的,怎么解决?
先试试改fckconfig.js里的“FCKConfig.UseBROrderEffect = false;”,这个配置是关浮层边框动画的,IE9+不支持旧的CSS滤镜效果,关掉后浮层样式会恢复正常。如果还不行,检查浮层的CSS样式有没有冲突,比如position:absolute没设z-index,或者被其他元素覆盖了,调整一下样式就行。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com