2012-09-25 130 views
0

说一句,剥皮这个野兽有点噩梦。与CKEditor疯狂

在任何情况下,我试图将对话窗口的textName添加到它的容器作为一个类,以使我的生活更轻松。

我在做东西错了,因为它似乎不适合我。有任何想法吗?我也尝试过jQuery的方式,没有成功。

CKEDITOR.on('dialogDefinition', function(ev){ 
        var dialogName = ev.data.name; 
        var dialogBox = document.querySelector('table.cke_1_dialog'); 
        dialogBox.setAttribute("class", dialogName); 
       }); 
+0

你知道如何在浏览器中进行调试吗?如果是的话,设置一个断点并检查'dialogName'和'dialogBox'的值... –

+0

谢谢 - 看起来这个事件对我来说太早了,实际上操纵了对话窗口,因为它没有添加到DOM中。任何人都知道更好的事件来听? – probablyup

回答

0

想通了。

CKEDITOR.on('dialogDefinition', function(ev){ 
    var dialogName = ev.data.name; 
    ev.data.definition.onLoad = labeler; 
    function labeler(){ 
     var dialogBox = document.querySelector('table.cke_dialog'); 
     dialogBox.className = dialogBox.className + " " + dialogName; 
    } 
}); 
+0

这里不需要声明一个单独的函数。只需指定一个函数表达式:'ev.data.definition.onLoad = function(){var dialogBox ...};' –