2013-08-27 35 views
19

Komut dizimde, kendi yönergelerimin yoluna gitmeden önce CKEDITOR'un ready numaralı durumda olmasını beklemek istedim. Bu yüzden CKEDITOR API danıştı ve aşağıdaki koşulu yazdı:CKEDITOR.status "hazır" nasıl alınır?

if(CKEDITOR.status == "ready"){ 
//execute my code when ready 
} 

Ancak durum hiç hiç loaded den status için değişir. Anlaşılan başka bir devlet görmemiştim bile.

Daha fazla göreve özel olarak, CKEDITOR'un contenteditable = "true" satır içi değiştirmeyi değiştirmeyi tamamladığı anı yakalamak istedim. O zaman JS kodumla devam etmek istiyorum.

Herhangi bir ipucu? @Sudhir belirttiği gibi

CKEDITOR.on('instanceReady', function(evt){ 
    //ready 
    //do something 
}); 
+0

emin değilim o CKEDITOR.status veya "gecikmiş yükleme" sistemi tanıtımıyla kesildi CKEditor başka bir parçasıdır afaik çünkü CKEditor 4 "yüklenmiş" olayı işi 4.x serisi. Çalışsalar bile, sayfadaki editörlerin başlatılmasıyla ilgili değiller, verilen cevaplarda gösterildiği gibi her bir örnek için dinleyicileri kullanmalısınız. – AlfonsoML

cevap

47

API tamamen yüklendiğinde, kodunuzu yürütmek CKEDITOR.loaded etkinliği kullanmak istiyorsanız:

Eğer herhangi yeni örneği hazır olduğunda kodunuzu yürütmek istiyorsanız
CKEDITOR.on('loaded', function(evt) { 
    // your stuff here 
}); 

, CKEDITOR.instanceReady olay kullanın : bir belirli örneği hazır olduğunda size kodu çalıştırmak istiyorsanız

CKEDITOR.on('instanceReady', function(evt) { 
    // your stuff here 
}); 

ardından kullanmak CKEDITOR.editor.instanceReady olay:

CKEDITOR.replace('editor', { 
    on: { 
     instanceReady: function(evt) { 
      // your stuff here 
     } 
    } 
}); 
+1

ipucunu kullanabilirsiniz: olay tetikleyicinin 'evt.editor' içerisindeki editörü, evt.editor.element. $' Içindeki orijinal öğe. – Markus

7

CKEditor hiçbir ready durumu, sizin gibi loaded kullanabilirsiniz var doğrudan öznitelik değeri ve instanceReady yöntemi.

  • CKEDITOR yalnızca yükleme işlemini tamamladığında değil, aynı zamanda tüm işleme işlemini tamamladığında bildirilmesini istemiyorsanız, olay dinleyicisini kullanın. Özellikle HTML değiştirme ve enjeksiyon.
+0

evet, sadece aşağıdakiler sırayla sırayla. Ancak, CKEDITOR'un contenteditable = "true" satır içi değiştirmeyi değiştirmeyi tamamladığı anı yakalamak istedim. Bir ipucu. boşaldı: API henüz yüklenmedi. basic_loaded: temel API özellikleri kullanılabilir. basic_ready: temel API tam çekirdek kodunu yüklemeye hazır. yüklendi: API tam olarak kullanılabilir. – feder

+1

@feder bu durumda 'insanceReady' –

1

, arasında küçük bir fark vardır:

if (CKEDITOR.status == 'loaded') { 
    // The API can now be fully used. 
    doSomething(); 
} 

veya benzeri instanceReady kullanın: