2012-09-06 22 views
5

Mam problem z ukrywaniem elementu podglądu w wtyczce obrazu CKEditor. Potrzebuję bardzo prostego okna dialogowego z obrazem i tylko z polem wejściowym dla źródła obrazu i formularza z przyciskiem do przesyłania zdjęć. Więc usunąłem niepotrzebne elementy za pomocą tych ustawień konfiguracyjnych niestandardowe:Usuwanie htmlPreview w wtyczce obrazu CKEditor

CKEDITOR.on('dialogDefinition', function(ev) 
{ 
    var dialogName = ev.data.name; 
    var dialogDefinition = ev.data.definition; 
    if (dialogName == 'image'){ 
     dialogDefinition.removeContents('advanced'); 
     dialogDefinition.removeContents('Link'); 
     var infoTab = dialogDefinition.getContents('info'); 
     infoTab.remove('ratioLock'); 
     infoTab.remove('txtHeight');   
     infoTab.remove('txtWidth');   
     infoTab.remove('txtBorder'); 
     infoTab.remove('txtHSpace'); 
     infoTab.remove('txtVSpace'); 
     infoTab.remove('cmbAlign'); 
     infoTab.remove('txtAlt'); 
    } 
}); 

Problemy zaczynają się, gdy próbuję ukryć elementu htmlPreview. Jeśli po prostu dodaję infoTab.remove('htmlPreview ');, wystąpi błąd: Uncaught TypeError: Cannot call method 'setStyle' of null z powodu zależności kodu dla usuniętego elementu. Google dużo i wydaje się, że istnieją dwa sposoby rozwiązania tego problemu - ręcznie edytować kod źródłowy wtyczki jak napisane there (

Chyba jedynym rozwiązaniem jest usunięcie wszystkich funkcji javascript z obrazka/dialogach /image.js które odnoszą się do tych obiektów, które html usunięto.

starałem się do tej rady, ale nie mógł edytować plik źródłowy bez kolejnych błędów) lub napisać własne. Oczywiście, mogę po prostu dodać pewne reguły CSS i ukryć elementy, ale myślę, że to nie jest dobry pomysł. Ten problem jest wystarczająco duży i jestem pewien, że istnieje dobre rozwiązanie, ale nie udało mi się go znaleźć. Mam nadzieję, że mi pomożesz. Z góry dziękuję.

P.S. Mam najnowszą wersję CKEditor - 3.6.4.

Odpowiedz

7

Ze względu na sposób, że dialog obraz jest napisane, nie można łatwo usunąć z podglądu bez dalszego dostosowania resztę pliku również usunąć wszystkie swoje referencje.

Sugerowałbym używać mojego plugin konfiguracji (lub napisać podobny kod), jak opisano tutaj: http://alfonsoml.blogspot.com.es/2012/04/hide-dialog-fields-in-ckeditor.html

config.hideDialogFields="image:info:htmlPreview"; 

Można pobrać wtyczkę z mojego bloga lub jeśli już włączony do CKEditor 4, dodać do twojej kompilacji: http://ckeditor.com/addon/confighelper

+0

To wciąż jest łatwe i skuteczne rozwiązanie w dniu 14 listopada. Wtyczka (dostępna z witryny cedenta jako połączona) pozwoliła mi zaoszczędzić wiele godzin. Dzięki @AlfonsoML –

0

u mogą spróbować infoTab.remove('htmlPreview');

+0

Nie przeczytałeś dokładnie mojego pytania. Wspomniałem, że ta metoda nie działa. –