如何将响应类添加到ckeditor图像对话框?

时间:2016-02-11 09:01:47

标签: twitter-bootstrap ckeditor colorbox

我的网站面包师有CK编辑器。 如果没有插入类,我希望图像自动具有“img-responsive”类。 怎么样?我能做到吗

我找不到这个http://docs.cksource.com/CKEditor_3.x/Howto/Default_Field_Values的字典 每个输入都有什么名字等等?并且html源代码不会显示。

3 个答案:

答案 0 :(得分:1)

很久以前我遇到了同样的问题。我可能会复制粘贴大部分代码,我自己做了一些小修改。它有点长的代码,可以为所有添加的图像添加img-responsive类。

 CKEDITOR.replace('editor1');
    CKEDITOR.on('instanceReady', function(ev) {

        //resp. images for bootstrap 3
        ev.editor.dataProcessor.htmlFilter.addRules(
                {
                    elements:
                            {
                                $: function(element) {
                                    // Output dimensions of images as width and height
                                    if (element.name == 'img') {
                                        var style = element.attributes.style;
                                        //responzive images

                                        //declare vars
                                        var tclass = "";
                                        var add_class = false;

                                        tclass = element.attributes.class;

                                        //console.log(tclass);
                                        //console.log(typeof (tclass));

                                        if (tclass === "undefined" || typeof (tclass) === "undefined") {
                                            add_class = true;
                                        } else {
                                            //console.log("I am not undefined");
                                            if (tclass.indexOf("img-responsive") == -1) {
                                                add_class = true;
                                            }
                                        }

                                        if (add_class) {
                                            var rclass = (tclass === undefined || typeof (tclass) === "undefined" ? "img-responsive" : tclass + " " + "img-responsive");
                                            element.attributes.class = rclass;
                                        }

                                        if (style) {
                                            // Get the width from the style.
                                            var match = /(?:^|\s)width\s*:\s*(\d+)px/i.exec(style),
                                                    width = match && match[1];

                                            // Get the height from the style.
                                            match = /(?:^|\s)height\s*:\s*(\d+)px/i.exec(style);
                                            var height = match && match[1];

                                            if (width) {
                                                element.attributes.style = element.attributes.style.replace(/(?:^|\s)width\s*:\s*(\d+)px;?/i, '');
                                                element.attributes.width = width;
                                            }

                                            if (height) {
                                                element.attributes.style = element.attributes.style.replace(/(?:^|\s)height\s*:\s*(\d+)px;?/i, '');
                                                element.attributes.height = height;
                                            }
                                        }
                                    }



                                    if (!element.attributes.style)
                                        delete element.attributes.style;

                                    return element;
                                }
                            }
                });
    });

答案 1 :(得分:0)

我正在使用一个更简单的解决方案 - 一旦页面加载,只需遍历图像并在父div中的子'img'元素中添加'img-responsive'类(在我的例子中为'article')。

$(document).ready(function(){
  $('article').children('img').each(function(){
    $(this).addClass('img-responsive');
  });
});

答案 2 :(得分:0)

我刚刚在下面做了这个,它完美无缺:

$(document).on('turbolinks:load', function() {

    $( "img" ).addClass( "img-responsive" );

});

ps:我在轨道5上解释了'turbolinks:load'