2

KCfinder 返回的图像标签在 CKeditor 上不完整,并且未正确显示/保存。请注意,我正在使用内联 CKEditor 和 KCFinder 进行图像上传。

以下是集成代码:

ckeditor/config.js

    config.filebrowserBrowseUrl = base_url+'/js/kcfinder/browse.php?type=files';
    config.filebrowserImageBrowseUrl = base_url+'/js/kcfinder/browse.php?type=images';
    config.filebrowserFlashBrowseUrl = base_url+'/js/kcfinder/browse.php?type=flash';
    config.filebrowserUploadUrl = base_url+'/js/kcfinder/upload.php?type=files';
    config.filebrowserImageUploadUrl = base_url+'/js/kcfinder/upload.php?type=images';
    config.filebrowserFlashUploadUrl = base_url+'/js/kcfinder/upload.php?type=flash';

在页面 HTML

<div id="page_body" contenteditable="true" class="full">...</div>

页面 JS

<script type="text/javascript">
            CKEDITOR.disableAutoInline = true;           
            var editor = CKEDITOR.inline( 'page_body', {
                on: {
                    focus: function(event){
                        var data = event.editor.getData();
                        alert(data);
                    },
                    blur: function( event ) {
                        var data = event.editor.getData();
                        var page_id = <?php echo $this->uri->segment(3) ?>;
                        var page_link =$("#page_link").val();
                        $.ajax({
                            type: 'POST',
                            url: '<?php echo site_url('admin/dashboard/ajaxChangePageData') ?>',
                            data: { page_id: page_id, page_body: data,page_link:page_link },
                            beforeSend:function(){},
                            success:function(data){},
                            error:function(){ alert("Error"); }
                        });      

                    }
                }
            } );

        </script>

奇怪的是,我可以使用 KCFinder 浏览服务器/上传而不会出现任何错误,我什至可以从服务器中选择图像,并且图像在内容中成功显示。但重新加载后不存在代码宽度高度信息。我认为为图像创建的 html 不完整

在源代码模式下,我看到-

<img alt="" src="/gchalk/content/images/333(1).jpg"  300px; height: 224px;" />

如果我第二次对 div 进行一些更改,比如添加一些文本,情况就会变得更糟。图像丢失并被视为文本,上面的代码显示为

在源模式-

&lt;img alt=&quot;&quot; data-cke-saved-src=&quot;/gchalk/content/images/333(1).jpg&quot; src=&quot;/gchalk/content/images/333(1).jpg&quot; 300px;=&quot;&quot; height:=&quot;&quot; 224px;&quot;=&quot;&quot;&gt;

它在浏览器/编辑器上显示为 -

<img alt="" data-cke-saved-src="/gchalk/content/images/333(1).jpg" src="/gchalk/content/images/333(1).jpg" 300px;="" height:="" 224px;"="">

我撕了一天的头发,找不到解决办法。请帮我弄清楚如何解决它。

哦,为了记录,文本通过 ajax 帖子在 MySQL 中保存为“TEXT”,我很确定这不是问题,但仍然只是说!

我注意到图像标签在默认的ckeditor(不是内联)中也被弄乱了。

4

1 回答 1

0

可能影响代码输出的事情:

1-使用 PDO 时的魔术引号。如果它们打开,请在您的 php.ini 中将它们关闭!它们已被弃用。我为什么要告诉你这些?将是因为在您的源模式下,您300px; height: 224px;" 在存储它并显示它时拥有300px;="" height:="" 224px;"=""

2-你的 CKeditor 包。尝试下载并重新上传您的 Ckeditor(如果可能,将其更新到最新版本)

除此之外,我认为您提供的代码没有任何问题。祝你好运!

于 2013-03-16T19:29:48.813 回答