如何防止CKEditor将标题设置为iframe?

3Ne*_*Nex 5 jquery attributes tooltip title ckeditor

我使用CKEditor以及jQuery UI的工具提示插件.会发生什么是CKEditor将title属性设置为其iframe元素,jQuery工具提示插件将其转换为工具提示然后,只要您将鼠标悬停在编辑器的任何部分上(每次编辑文本时都必须这样做) ,工具提示总是显示,说"富文本编辑器,elementId".

即使我将工具提示插件的选择器设置为"*:not(iframe)",它仍然会这样做.到目前为止,我发现没有为iframe设置工具提示的唯一方法是从选择器中排除"div",但是我也丢失了编辑器的粗体/斜体等选项的工具提示.

我无法在CKEditor的Javascript中找到设置iframe标题的代码部分,因此我可以将其删除.我找到的一个部分是语言文件中的实际标题字符串,我可以用空字符串替换"富文本编辑器",但它仍然将iframe的标题设置为",{elementId}".

任何帮助表示赞赏,我很乐意保留两个插件.

Rob*_*ert 8

陷入完全相同的问题,为另一个不太可能很快需要屏幕阅读器的开发人员开发自定义CMS.

感谢mihaisimi为你的指针.通过深入研究CKEditor实例属性,我最终编写了下面的JS位来从内容区域中删除"Rich text editor,element_id"标题.

CKEDITOR.on("instanceReady", function(e) {
 var $frame = $(e.editor.container.$).find(".cke_wysiwyg_div");
 if($frame) $frame.attr("title", "");
});
Run Code Online (Sandbox Code Playgroud)

所以基本上只要CKEditor加载我将CKEditor的容器包装在jQuery对象中,我就会div.find()查找实际内容并用.attr()删除它的标题.

请注意这个解决方案需要jQuery.我在'div模式'中使用CKEditor版本4.1.1.任何人在"IFRAME模式"采用了类似的版本可能会逃脱变化.find(".cke_wysiwyg_div").find(".cke_wysiwyg_frame").

例如,您可以将一些代码附加到ckeditor/config.js文件中.它不漂亮,但它的工作原理.

希望我的解决方案可以帮助任何人解决这个问题.