2010-12-03 27 views
2

Salut j'ai créé le plugin ckeditor suivante pour insérer une vidéo sur youtube:CKEditor Plugin - Bouton OK Erreur d'autorisation

(function() { 
    CKEDITOR.plugins.add('youtube', { 
     requires : ['iframedialog'], 
     init : function(editor) { 
      var iframeWindow = null; 
      CKEDITOR.dialog.add('youtube_dialog', function() { 
       return { 
        title : 'YouTube Movie Properties', 
        minWidth : 550, 
        minHeight : 200, 
        contents : [{ 
         id : 'iframe', 
         label : 'Insert YouTube Movie', 
         expand : true, 
         elements : [{ 
          type : 'iframe', 
          src : me.path + 'dialogs/youtube.html', 
          width : '100%', 
          height : '100%', 
          onContentLoad : function() { 
           iframeWindow = document.getElementById(this._.frameId).contentWindow; 
          } 
         }] 
        }], 
        onOk : function() { 
         this._.editor.insertHtml('<cke:youtube url="' + iframeWindow.document.getElementById('url').value + '">YouTube Video Place Marker</cke:youtube>'); 
        } 
       }; 
      }); 
      editor.addCommand('youtube', new CKEDITOR.dialogCommand('youtube_dialog')); 
      editor.ui.addButton('YouTube', { 
       label : 'Insert YouTube Movie', 
       command : 'youtube', 
       icon : this.path + 'images/icon.gif' 
      }); 
     } 
    }); 
})(); 

Cela fonctionnait très bien mais j'ai récemment déplacé mes fichiers ckeditor à un CDN. Maintenant, quand je clique sur le bouton "OK" je reçois une erreur d'autorisation. Je regardais la source des plugins existants pour avoir une idée de la façon dont ils fonctionnent mais tout ce que j'ai essayé ne semble pas fonctionner. Pour obtenir quelque chose de travail de base que j'ai essayé de changer mon événement okok à:

onOk : function() { 
    var hr = new CKEDITOR.dom.element('hr', editor.document); 
    editor.insertElement(hr); 
} 

Mais cela m'a donné une exception de référence null.

J'apprécierais vraiment si quelqu'un pouvait me montrer ce que je fais mal. Merci

Répondre

1

Problème résolu! La solution est de changer:

CKEDITOR.dialog.add('youtube_dialog', function() 

à:

CKEDITOR.dialog.add('youtube_dialog', function(editor) 

et le changement:

this._.editor 

à:

editor 

Hope this helps.