2012-12-04 2 views
0

Je construis un système qui ont éditeur (éditeur HTML) FreeTextBox ou ckeditor peu importepossible de laisser l'éditeur reconnaître le lien

ma question!

Son Possible de laisser l'éditeur Reconnaître le lien après le coller dans l'éditeur? par exemple: si je copier et coller le lien suivant
http://www.youtube.com/watch?v=uI40vztICwM&feature=g-logo

alors l'éditeur doit jouer vidéo youtube

sinon! S'il vous plaît, y at-il des événements que je peux gérer en javascript après avoir coller du contenu dans l'éditeur?

+1

essayer onpaste javascript événement – Tuscan

+0

Toute entrée en html ont onchange événement. Essayez de l'utiliser, mais je pense que vous devez créer votre propre fonction de reconnaissance. –

+0

je pourrais créer la fonction de reconnaissance est facile mais j'ai besoin de l'événement qui peut me dire le contenu de la pâte – user1860403

Répondre

1

S'il vous plaît avez ci-dessous le code:

<script> 

    CKEDITOR.on('instanceReady', function(e){ 
    var editor = e.editor; 
    editor.on('paste', function(evnt){ 

    var data = evnt.data; 

     // youtube recognize 
     data.dataValue = data.dataValue.replace(/(?:http:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g, '<iframe width="420" height="345" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>'); 

     //image recognize 

     data.dataValue = data.dataValue.replace(/(https?:\/\/.*\.(?:png|jpg))/i,'<img src="$1" width="450" height="199" alt="alt description" title="image title" class="image_classes" />'); 

     alert(data); 
     data.type = 'html'; 


    }); 
    }); 


     </script> 
2

Dans CKEditor, vous avez l'événement paste de l'instance de l'éditeur. Il est beaucoup plus fiable que le paste natif parce que tous les navigateurs ne le font pas de la même façon (Opera ne le fait pas du tout). Aussi, chose cool à propos de l'événement de collage de CKEditor est que vous pouvez modifier les données qui ont été collées avant qu'ils ne soient insérés dans la sélection dans le document.

est ici la documentation de cet événement: http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-paste

Remarque: Nouvelle version de CKEditor a été publié il y a une semaine et cet événement a été modifié, afin d'assurer que vous utilisez CKEditor 4.

Exemple l'utilisation (vous pouvez obtenir par exemple l'éditeur de l'objet, par exemple CKEDITOR.instances ou si vous utilisez CKEDITOR.replace()/append() alors par exemple de l'éditeur est renvoyé par ces méthodes):

editor.on('paste', function(evt) { 
    var data = evt.data; 
    data.dataValue = data.dataValue.replace(
     /(http:\/\/[^\s]+)/gi, '<a href="$1">$1</a>'); 
    // Text could be pasted, but you transformed it into HTML so update that. 
    data.type = 'html'; 
}); 
+0

J'espère que cela fonctionnera je vais l'essayer – user1860403

0

Pas besoin de se gratter la tête plus. Il existe déjà un plugin appelé autolink disponible pour cela pour ckeditor. S'il vous plaît suivre lien ci-dessous

autolink

Questions connexes