2012-10-11 11 views
8

Muszę mieć możliwość przełączania edycji on/off za pomocą przycisku. Zobacz tutaj na przykład edycji inline: http://nightly-v4.ckeditor.com/3559/samples/inlineall.htmlWłączanie i wyłączanie bezpośredniej edycji CKEditor 4 za pomocą JavaScriptu

Moja znaczników jest tak:

<div contenteditable='true'>Mycontent</div> 

jQuery Chcę móc włączyć/wyłączyć edytor.

Próbowałem ustawić contenteditable na wartość false, ale to nie działa. Edytor nie ładuje się ponownie na stronę po przełączeniu ustawienia contenteditable.

Dodatek: Musiałem również zniszczyć wszystkie wbudowane instancje CKEditor po kliknięciu przycisku. Oto, jak to zrobiłem:

 //kill all ckeditors 
     for(k in CKEDITOR.instances){ 
      var instance = CKEDITOR.instances[k]; 
      instance.destroy(); 
     } 

Odpowiedz

6

jQuery ci nie pomoże. Użyj API CKEditor. Na przykład. możesz zniszczyć edytor za każdym razem, gdy chcesz go wyłączyć (patrz http://nightly-v4.ckeditor.com/ckeditor_api/#!/api/CKEDITOR.editor-method-destroy) i zainicjować ponownie, aby go włączyć. Mogą istnieć inne sposoby "wyłączenia edytora", ale musisz precyzyjniej określić, co to dla ciebie znaczy.

+0

Dzięki, to naprawdę je niszczy. Jak jednak ponownie utworzyć instancję edytora wbudowanego? – izip

+0

Chciałem to napisać dokładnie w taki sam sposób, w jaki stworzyłeś go za pierwszym razem, ale potem pomyślałem, że to jest tworzenie instancji automatycznie: D. W każdym razie - 'CKEDITOR.inline ('div_id')'. Sprawdź [to demo] (http://nightly-v4.ckeditor.com/3559/samples/inlinebycode.html). – Reinmar

+0

Nie jestem pewien, czy robię coś nie tak, ale po inline instancji jest zniszczony, chociaż paski narzędzi znikają, obszar edytora jest nadal edytowalne. Również znajduje się migający kursor. Jak mogę sprawić, żeby działało jak przed CKEDITOR.inline(); - Mam na myśli statyczną treść. – NickSoft

Powiązane problemy