2012-07-05 115 views
0

我正在構建一個類似於pagemodo.com的頁面自定義功能的功能。用戶必須點擊HTML頁面中的標籤(div),CKEDITOR將使用標籤文本加載到單獨的div中。ckeditor編輯頁面

現在,ckeditor正在加載標籤文本,但CKEDITOR的「KeyUp」事件未觸發。只有當「KeyUp」事件觸發時,我才能夠調用另一個函數「readAsTyped」來同時更改標籤中的文本。

您可以在這裏看到http://graffiti-media.co/testing/rashmi/custom/

$(document).ready(function() { 
     $('.editable').click(function(){ 
     $(this).children().each(function(index, domEle) { 
       createEditor($(domEle).text(), domEle); 
      }); 
     }); 

    }); 

    var editor, html = ''; 


    function createEditor(text1, domEle) 
    { 

     // Create a new editor inside the <div id="editor">, setting its value to html 
     var config = {}; 
     ckeditor_instance = CKEDITOR.appendTo('editor', config, text1); 

     var abc=ckeditor_instance.name; 
     ckeditor_instance.on('instanceCreated', function(e) { 
       e.editor.on('contentDom', function() { 

       e.editor.document.on('keyup', function(event) { 
        // keyup event in ckeditor 

       readAsTyped($('#cke_editor2'),$(domEle)); 
        //on focus 
       } 
      ); 
     }); 
    }); 
    } 


function readAsTyped(obj, label) { 
    var typedVal = obj.val(); 
    // set the value of characters into the label 
    $(label).html(typedVal); 
} 

工作拷貝任何幫助將不勝感激。

回答

0
+0

是的,類似的東西。只有很小的差異。當單擊一個div時,爲div內的每個孩子打開一個CKEDITOR。在你的例子中,頁面中只有一個CKEDITOR實例,因此我們可以像這樣綁定事件「CKEDITOR.on()」。我需要在同一頁面中綁定多個CKEDITOR的事件。 – 2012-07-06 06:42:27

+0

您可以根據自己的需要,將事件與CKEDITOR創建時的每個實例綁定或分別綁定到每個實例。 – AlfonsoML 2012-07-06 07:36:21

+0

這是我現在使用的代碼。我將CKEDITOR實例附加到div並將其分配給變量「ckeditor_instance」,但「instanceCreated」事件永遠不會觸發。 'ckeditor_instance = CKEDITOR.appendTo('editor',config,text1); \t ckeditor_instance.on('instanceCreated',function(e){ document.getElementById(e.editor.name +'_preview')。innerHTML = e.editor.getData(); e.editor.on('change ',function(ev){document.getElementById(ev.editor.name +'_preview')。innerHTML = ev.editor.getData(); });' – 2012-07-06 11:21:05