游侠网云服务,免实名免备案服务器 游侠云域名,免实名免备案域名

统一声明:

1.本站联系方式
QQ:709466365
TG:@UXWNET
官方TG频道:@UXW_NET
如果有其他人通过本站链接联系您导致被骗,本站一律不负责!

2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET
3.免实名域名注册购买- 游侠云域名
4.免实名国外服务器购买- 游侠网云服务
IE9后浏览器FCKEditor无法上传图片、浮层不显示?超实用解决方法在这里

其实这不是你的问题: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为例):

  • 打开IE浏览器,点击右上角的齿轮图标(设置);
  • 选择“兼容性视图设置”;
  • 在“添加此网站”输入框里,输入你用FCKEditor的网站域名(比如www.yourcompany.com);
  • 点击“添加”,然后关闭设置窗口,刷新页面
  • 如果是Windows 10的IE11,找不到齿轮图标?别慌——按键盘上的Alt键,顶部会出现“工具”菜单,里面一样有“兼容性视图设置”。

    我之前帮一个教育机构的课程编辑处理过:她用IE11编辑课程大纲,传课件图片一直失败,按这个方法加了网站到兼容视图后,立刻就能传图了,浮层也能正常显示内容。提示:如果加了一次没用,可以试试勾选“在兼容性视图中显示所有网站”(但不推荐,会影响其他网站的渲染)。

    第二步:修改FCKEditor的“核心配置文件”,让代码“适应新规则”

    如果兼容模式解决不了,就得“动代码”了——但别害怕,只是改几个配置项,不用写新代码。

    FCKEditor的核心配置文件是fckconfig.js,一般在网站根目录的fckeditor文件夹里。找到它,用记事本打开,修改这3处:

  • 关闭XHTML模式:找到FCKConfig.EnableXHTML = true;,改成FCKConfig.EnableXHTML = false;——XHTML模式会生成更严格的代码,但IE9+对某些XHTML标签的解析有问题,改成HTML4模式更兼容。
  • 禁用边框动画:找到FCKConfig.UseBROrderEffect = true;,改成FCKConfig.UseBROrderEffect = false;——这个配置是给浮层加边框动画的,但IE9+不支持旧的CSS滤镜效果,关掉后浮层就能正常显示了。
  • 强制IE7渲染模式:在文件最后新增一行FCKConfig.IECompatibilityMode = 'IE7';——直接告诉FCKEditor“按IE7的方式工作”,绕过新版本的兼容问题。
  • 为什么要改这些?举个例子:我之前帮一个企业官网的编辑处理过,她用IE10编辑新闻稿,浮层打开后是空白——查了代码发现,FCKEditor的浮层用了position:absolute但没设置z-index,IE9+下被其他元素覆盖了;改成UseBROrderEffect = false后,浮层的CSS样式恢复正常,内容就显示出来了。

    第三步:更新“上传组件”,彻底解决“传图失败”

    如果前两步都试过了,还是传不上图,那问题肯定出在上传组件上——FCKEditor的默认上传代码(比如upload.phpupload.asp)用了旧的HTTP请求方式,IE9+会拦截。

    解决方法很简单:替换上传组件

  • 下载补丁:去CKEditor官网的“旧版资源”页面(链接:CKEditor旧版资源),下载对应你网站语言的上传组件补丁(比如PHP、ASP、JSP)。
  • 替换文件:把下载的补丁解压,替换网站fckeditor/editor/filemanager/upload文件夹下的所有文件——比如PHP版本的话,替换upload.phpconfig.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,或者被其他元素覆盖了,调整一下样式就行。