2013-03-27 9 views

Odpowiedz

7

To, czego brakuje, to contenteditable="true" atrybut twojego elementu. Jeśli chcesz, aby edytor był dostosowany (tj. Uruchomiony przez CKEDITOR.inline(element, cfg)), najpierw ustaw CKEDITOR.disableAutoInline = true;.

Z CKEDITOR.disableAutoInline = true;, wszystkie elementy contenteditable="true" muszą zostać zainicjowane ręcznie, aby stać się instancją edytora. Zobacz instancje inline dla official guide.

+0

Hej ... Dobra, oboje macie rację. Muszę użyć contenteditable = "true" - ale również disableAutoInline = "true", jak powiedziałem. Rozwiązanie: http://jsfiddle.net/5LuyD/2/ Wielkie dzięki dla was obu –

2

Brakowało atrybutu contenteditable = "true" dla tagów, które można edytować!

Oto skrzypce. http://fiddle.jshell.net/5LuyD/1/

+0

Nr !. Jeśli użyję contenteditable = "true", otrzymasz standard, nieskonfigurowany. Korzystając z polecenia inlne(), możesz ustawić, jakie przyciski na to pozwalasz. –

+0

Ale na początek! musisz ustawić contenteditable = "true". Jeśli tego nie zrobisz, tekst nie będzie edytowalny, a przyciski nie będą aktywne. Daj mi minutę, a sprawdzę, dlaczego zestawy przycisków nie będą działać. – spons

2

Dla każdego, kto ma ten problem pomimo ustawienia contenteditable="true", jest problem z Chrome, w którym contenteditable ma wartość false, jeśli element (lub element nadrzędny) nie jest widoczny.

Zob http://ckeditor.com/forums/CKEditor/Solved-Chrome-Toolbar-buttons-grayed-out-for-INLINE-editor

Roztwór albo a) zapewnienie element jest widoczny przed wywołaniem CKEDITOR.inline() lub b) stosowanie textarea zamiast contentEditable elementu (CKE dodaje contenteditable div po tekstowego w tym przypadku) .

1

Po prostu miałem ten sam problem i odkryłem dla niego inną poprawkę. Jeśli element macierzysty (lub sam element) jest pierwotnie ustawiony do wyświetlania: none contenteditable will = false (na chrome).

Ta poprawka pracował dla mnie:

var ck = CKEDITOR.inline(element); 
ck.on('instanceReady', function(event) { 
    var editor = event.editor; 
    editor.setReadOnly(false); 
}); 

Ref: https://dev.ckeditor.com/ticket/9814

0

miałem ten sam problem i żaden z pozostałych proponowanych rozwiązań pracował.

Problem polegał na tym, że atrybut id elementu div zaczął się od znaku numerycznego (był to identyfikator GUID). Zmiana identyfikatora na początek z użyciem znaku alfa: wszystkie przyciski edytora zostały włączone.

Z jakiegoś powodu ckEditor nie lubi identyfikatorów zaczynających się od znaków numerycznych.

0
$(document).ready(function(){ 
    for(var i in CKEDITOR.instances) { 
       var ck=CKEDITOR.instances[i]; 
       ck.on('instanceReady', function(ev) { 
       var editor = ev.editor; 
      editor.setReadOnly(false); 
    }); 
}}); 
Powiązane problemy