CKEditor - Webkit浏览器中的编辑器宽度溢出

时间:2013-01-10 15:46:45

标签: google-chrome safari webkit ckeditor wysiwyg

我发现了工具栏don't automatically wrap in WebKit browswers(Safari,Chrome)。 CKEditor 3报告了three year old bug,但已关闭。也许这是回归?

我没有在配置中设置宽度。我希望编辑器自动扩展到可用的宽度。编辑器位于div元素内,其中应用了overflow: hidden;样式。

这是我的工具栏配置:

config.toolbar = [
    {name:'clipboard', items:['Cut', 'Copy', 'Paste', 'PasteText',
            '-', 'Undo', 'Redo']},
    {name:'insert', items:['Link', 'Unlink', 'Image', 'Table', 'SpecialChar']},
    {name:'basic', items:['Bold', 'Italic', 'Strike',
            '-', 'NumberedList', 'BulletedList',
            '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock',
            '-', 'Outdent', 'Indent',
            '-', 'RemoveFormat']},
    {name:'styles', items:['Styles']},
    {name:'additional', items:['jQuerySpellChecker',
            '-', 'Source',
            '-', 'Maximize']}
];

火狐:
Toolbars wrap nicely

Chrome(因容器而切断编辑器):
Toolbars do not wrap

我不想添加硬分解,因为我使用不同宽度的相同编辑器配置。如何在不使用手动换行“按钮”的情况下解决此问题?


更新

我在表单中使用fieldset个元素。我发现添加fieldset是触发布局问题的原因。此代码重现了该问题:

<!DOCTYPE html>
<html>
    <head>
        <title>CKEditor</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <style>
            html {
                background-color: lightgray;
            }
            #content {
                margin: 0 auto;
                border: 1px solid black;
                padding: 10px;
                width: 400px;
                overflow: hidden;
                background-color: white;
            }
            fieldset {
                margin: 0;
                border: 0 none;
                padding: 0;
            }
        </style>
    </head>
    <body>
        <div id="content">
            <fieldset>
                <textarea name="editor1" id="editor1">&lt;p&gt;Foo foo!&lt;/p&gt;</textarea>
            </fieldset>
        </div>
        <script type="text/javascript" src="http://ckeditor.com/apps/ckeditor/4.0.1/ckeditor.js"></script>
        <script>
            CKEDITOR.replace('editor1');
        </script>
    </body>
</html>

更新2

我有filed a bug report。我会接受一个为这个bug提供解决方案的答案。

1 个答案:

答案 0 :(得分:2)

我无法重现此问题。无论是4.0还是4.0.1。我刚刚复制了你的工具栏配置+ { resize_dir: 'both', resize_minWidth: 300, width: 500 },以便有更好的机会观察它是否有效,这就是结果:

enter image description here

更新(2013年1月11日)

我创建了这样一个样本:

<!DOCTYPE html>
<html>
<head>
    <title>Sample</title>
    <meta charset="utf-8">
    <script src="../ckeditor.js"></script>
    <style>
        #content {
            width: 50%;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <div id="content">
        <textarea cols="80" id="editor1" name="editor1" rows="10">
            &lt;p&gt;Foo foo!&lt;/p&gt;
        </textarea>
        <script>
            CKEDITOR.replace( 'editor1', {
                toolbar: // your toolbar
            } );
        </script>
    </div>
</body>
</html>

对我来说一切都还行。我可以更改浏览器的宽度,工具栏正在调整大小。所以我的猜测是你的一些样式是破坏编辑器,或者你有一些非默认的CKEditor设置导致这种情况。