FCK编辑器无法正常工作

时间:2013-12-02 06:01:30

标签: internet-explorer fckeditor internet-explorer-11

FCK编辑器未加载IE11。这是因为IE11的新用户代理。

类似的问题来自IE10,它有以下修复 -

var sBrowserVersion = navigator.appVersion.match(/ MSIE([\ d。] +)/)[1]; (参考 - FCKEditor doesn't work in IE10

IE11也有类似的解决方案吗?

请帮助。

6 个答案:

答案 0 :(得分:5)

为了解决此问题(FCKEditor与IE11的兼容性),您必须在生成编辑器实例的相应文件中将IE 11检查添加到FCKEditor。在我们的例子中,这是fckeditor_php5.php:

else if ( strpos($sAgent, 'Gecko') !== false )
{
    // Internet Explorer 11
    $iVersion = (int)substr($sAgent, strpos($sAgent, 'rv:') + 3, 2) ;
    return ($iVersion >= 11) ;
}

注意:以上内容已添加到FCKeditor_IsCompatibleBrowser()函数中。

然后你必须为页面添加IE 9或IE 8的模拟(IE 10对我们不起作用):

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />

注意:必须在头标记

中添加以上内容

答案 1 :(得分:2)

试试这个:

navigator.appVersion.match(/rv:([\d.]+)/)[1]

由于IE11用户代理字符串没有MSIE密钥,因此确切版本由rv:密钥提供。

答案 2 :(得分:2)

我将以下内容添加到safari检查

下面的fckeditor.js文件的底部
// Safari 3+
if ( sAgent.indexOf( ' applewebkit/' ) != -1 )
    return (sAgent.match(/ applewebkit\/(\d+)/)[1] >= 522); // Build must be at least 522 (v3)

// Internet Explorer 11
    var sBrowserVersion = navigator.appVersion.match(/Trident\/.+; rv:(\d+)/)[1]
if (sBrowserVersion) {
    return (sBrowserVersion >= 10);
}

答案 3 :(得分:1)

H Solano的回答非常好,但是显然有一种情况是Ubuntu下的Chrome 34让FCK编辑器验证错误。所以我添加了一个小条件:

else if ( strpos($sAgent, 'Gecko') !== false ) {
  if (strpos($sAgent, 'Chrome') !== false) {
    // Just for Chrome 34 under Ubuntu with a rv: <11
    return true;
  }
  // Internet Explorer 11
  $iVersion = (int)substr($sAgent, strpos($sAgent, 'rv:') + 3, 2) ;
  return ($iVersion >= 11) ;
}

答案 4 :(得分:0)

对我来说同样的问题, 目前我用兼容性视图设置修复了它

答案 5 :(得分:0)

为了带有META标签的FCKEditor,我们试图模仿IE10。

<meta http-equiv="x-ua-compatible" content="IE=10">

显然,这需要在所有其他META标签之前。