Ckeditor按钮ID正在通过浏览器进行更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ckeditor按钮ID正在通过浏览器进行更改相关的知识,希望对你有一定的参考价值。

目前使用CKEditor,我需要在工具栏中获取按钮id以应用某些特定的CSS并获取某些按钮的位置例如。

但是使用谷歌浏览器,按钮的ID与使用mozilla或IE不同。

一个例子会更清楚:

如果我有相同的工具栏,相同的代码,Mozilla将告诉我这个:

<span id="cke_1_top>
    <span id="cke_7">Toolbar</span>

     // My first group of buttons, which contains 2 buttons
    <span id="cke_9" class="cke_toolbar" role = "toolbar">
         // Code for buttons
    </span>

    // My second group of buttons
    <span id="cke_12" class="cke_toolbar" role = "toolbar">
         // Code for buttons
    </span>
</span>

虽然chrome会显示:

<span id="cke_1_top>
    <span id="cke_8">Toolbar</span>
     // My first group of buttons, which contains 2 buttons
    <span id="cke_10" class="cke_toolbar" role = "toolbar">
         // Code for buttons
    </span>

    // My second group of buttons
    <span id="cke_13" class="cke_toolbar" role = "toolbar">
         // Code for buttons
    </span>

</span>

所以我的CSS,例如:

#cke_13{
    color: red
}

仅适用于Chrome,因为如果代码由mozilla显示,则此ID不存在。

目前问题仅出现在chrome中,所有ID都会增加1。

有谁知道问题出在哪里?或者至少有一种方法可以在创建按钮时选择按钮的ID吗?

我真的不知道为什么会这样,任何解决方案都会受到赞赏。

答案

改变CKEditor皮肤的一般方法应该通过获得source version,在ckeditor/skinsbuilding the editor进行更改来执行。

但是,如果您只需更改特定按钮,请注意每个按钮都分配了一个唯一的类,您可以在不同的浏览器中使用相同的样式或相同的javascript代码进行更改。请参阅:enter image description here

如果您需要更改工具栏组(包含一组按钮的元素),那么遗憾的是没有唯一的ID或类,我唯一​​可以推荐的方法是通过其唯一的类获取特定按钮,然后获取其最接近的父级(使用JavaScript)它有cke_toolbarcke_toolgroup类,是span

以上是关于Ckeditor按钮ID正在通过浏览器进行更改的主要内容,如果未能解决你的问题,请参考以下文章

CKEditor,AJAX Save

单个页面出现多个CKEditor编辑器,怎么创建

CKEditor插件在删除后缓存在磁盘中。如何强制浏览器重新扫描或删除该缓存?

仅在CKEditor初始化后运行JavaScript函数

单击外部按钮时将代码添加到CKeditor

Django-CKEditor 图片上传