2016-03-20 20 views
1

CKEditor kullanarak basit bir site oluşturma aracı yapıyorum. Bu araç, CKEditor stilleri açılırken yansıtılması gereken paletlerden seçme ve ayarlama kabiliyetine sahiptir. Ancak, CKEditor'da stillerin üzerine yazılmaması bana öyle geliyor. Şu anda var kodudur:CKEditor'daki stilleri değiştirin

CKEDITOR.stylesSet.add('styles', [ 
    // Block-level styles 
    { name: 'blah 1', element: 'h2', styles: { 'color': '#xxxxxx' } }, 
    { name: 'blah 2', element: 'h3', styles: { 'color': '#xxxxxx' } }, 
    { name: 'blah 3' , element: 'h4', styles: { 'color': '#xxxxxx' } }, 
    { name: 'blah 4' , element: 'h5', styles: { 'color': '#xxxxxx' } }, 
]); 
CKEDITOR.config.stylesSet = 'styles'; 

Şimdi, bu yeni stilleri ile tekrar edersen, ben alıyorum:

ckeditor.js:232 Uncaught Error: [CKEDITOR.resourceManager.add] The resource name "styles" is already registered. 

Ben CKEDITOR.replace kullanarak denedim ama bu değil sorunu düzeltin. Sanırım bariz çözüm, stil adını her kullanımda tekrarlamaktır; style1, style2, style3 ... ama bu çok kaynak dostu değil. Bunun için gerçek bir çözüm var mı?

sayesinde Lee

cevap

-1

Yani, eğer varsa, her zaman yeniden oluşturmadan önce, panelin yok ederek bir çözüm bulduk. Örneğin:

if (CKEDITOR.instances['footer-' + i]) { 
    CKEDITOR.instances['footer-' + i].destroy(true); 
} 
var editor = CKEDITOR.inline('footer-' + i, { 
    stylesSet: [ 
    // Block-level styles 
    { name: 'Blue Title', element: 'h2', styles: { 'color': 'Blue' } }, 
    { name: 'Red Title' , element: 'h3', styles: { 'color': 'Red' } }, 
    { name: 'Brown Title' , element: 'h4', styles: { 'color': 'Red' } }, 
    { name: 'Purple Title' , element: 'h5', styles: { 'color': 'Red' } } 
    ] 
}); 

Şimdi, bu söyleyerek, bir uyarı her zaman kusmak vermez: Çalışır beri çok

[CKEDITOR] For more information about this error go to http://docs.ckeditor.com/#!/guide/dev_errors-section-editor-incorrect-destroy 

Ancak, aksi CKEditor API ile bunu yapmak için hiçbir temiz şekilde var Onu cevap olarak işaretliyorum.

+1

Düzenleyici başlatıldıktan sonra stil ayarları, aşağıdakileri getirir: 1. [ACF] (http://docs.ckeditor.com/#!/guide/dev_acf), yapılandırmayı sağlanan stillere göre oluşturur - ör. stiller tanımına dahil olan öğelere izin verir. 2. Kaldırılmakta olan stillere sahip içerikle ne yapılacağı hakkında bir bilgi yok (içerik kaldırılmalı mı yoksa kaldırılmamış mı olmalıdır?) Bununla baş etmenin en iyi yolu editörü yok etmek ve yeni bir tane oluşturmaktır. stiller yapılandırması. Ayrıca, 'yanlış yıkım' hatasını araştırmayı kolaylaştırmak için örneğinizi JSFiddle/JSBin'de yayınlayın. –

0

Eğervarsayılan için stilleri yeniden adlandırma denediniz mi?

Bunu kullanıyorum ve çalışıyor, benimki harici bir dosya yüklüyor. Ama aynı dizi yapısı.

CKEDITOR.config.stylesSet = 'default:http://' + window.location.host + '/folder/fckeditor.styles.js'; 
+0

Merhaba, ve yorum için teşekkürler. Bunu yaparsam, hatayı alıyorum: "Yakalanmamış TypeError: undefined 'getEditor' özelliği okunamıyor", yepyeni bir solucan kutusu açar. –

+0

Başka bir şey mi değişti? Bu hatayı inceledim ve bu hata, değiştirme komutunda aradığınız bulunamayan textarea ile ilgilidir. – imvain2