Comment faire pour bloquer l'édition sur certaine partie du contenu dans CKEDITOR textarea?
J'ai mon CKEDITOR formulaire prérempli avec table masquée qui est soumis ensemble avec de l'utilisateur entrées de texte. Cela fonctionne bien, mais parfois, l'utilisateur appuie sur la touche retour arrière de trop nombreuses fois et supprime la table masquée.
Est-il un moyen de bloquer l'édition sur cette table masquée à l'intérieur de ckeditor textarea? Donc quand l'utilisateur appuie sur la touche retour arrière de la table masquée n'est pas affectée et reste dans.
Dès que CKEDITOR instance est prête de cette source (ci-dessous) est mis à l'intérieur de CkEditor Textarea (à l'aide de setData() attribut) et que l'Utilisateur ne voit que le retour de l' <p></p>
valeur. Dans ce cas, son <p>I really think I can do this!</p>
. Ses une description de son profil et il peut le garder et de le modifier. Le reste est caché et visible uniquement en e-mail lorsque le formulaire est soumis. Son étrange que <p></p>
est sur le dessus, mais si l'utilisateur appuie sur la touche retour arrière à quelques reprises, le tableau est supprimé et donc pas soumis.
<span id="messageTemplate1" class="message">
<p>I really think I can do this!</p>
<table class="hide" style="font-size: 12px;">
<tbody>
<tr class="hide">
<td>
Application sent by <strong><a href="http://www.globalcastingcenter.com/talent/jack-bolton">Matt Faro</a></strong> for Audition: <a href="http://www.globalcastingcenter.com:80/CustomContentRetrieve.aspx?ID=4185493">Actors Needed</a>
</td>
</tr>
<tr class="hide">
<td>
Reply to applicant directly: [email protected] or visit full profile: http://www.globalcastingcenter.com/talent/jack-bolton
</td>
</tr>
</tbody>
</table>
<table class="hide" style="font-size: 12px;">
<tbody>
<tr class="hide">
<td><strong>Short Profile Summary:</strong></td>
</tr>
</tbody>
</table>
<table class="hide" style="font-size: 12px;">
<tbody>
<tr class="hide">
<td>
<a href="http://www.globalcastingcenter.com/talent/jack-bolton"><img alt="" src="http://globalcastingcenter.com/talent_images/4164035_258551_foto.png?Action=thumbnail&Width=144&Height=215" /></a>
</td>
</tr>
</tbody>
</table>
<table style="font-size: 12px;" class="hide">
<tbody>
<tr class="hide">
<td><strong>Areas:</strong></td>
<td>Actor,Extra</td>
</tr>
<tr class="hide">
<td><strong>Country:</strong></td>
<td>WORLDWIDE,Any</td>
</tr>
<tr class="hide">
<td><strong>Age:</strong></td>
<td>26</td>
</tr>
</tbody>
</table>
</span>
Maintenant, quand je charge votre mon plugin CKeditor boîte disparaît, appuyez sur le bouton "Appliquer" sur la page de test de http://gcc-july.themantas.co.uk/auditions/actors-needed connectez-vous d'abord d'être en mesure d'accéder à la boîte de message nom de Connexion: [email protected] pssw: test
Mon fichier de config:
CKEDITOR.editorConfig = function( config )
{
config.toolbar = 'MyToolbar';
config.toolbar_MyToolbar =
[
{ name: 'clipboard', items : [ 'Undo','Redo' ] },
{ name: 'styles', items : ['FontSize' ] },
{ name: 'basicstyles', items : [ 'Bold','Italic'] },
{ name: 'paragraph', items : ['Outdent','Indent' ] },
];
config.removePlugins = 'contextmenu';
config.forcePasteAsPlainText = true;
config.pasteFromWordRemoveFontStyles = true;
config.pasteFromWordRemoveStyles = true;
config.extraPlugins = 'cwjdsjcsconfineselection';
config.startupShowBorders = false;
config.disableObjectResizing = true;
};
C'est comment la boîte ressemble quand je désactive le plugin: http://screencast.com/t/Kc2bIOU8md2
- Je utiliser votre structure HTML.
Merci pour vous commentaire codewaggle. J'ai ajouté supplémentaire d'explication et de la source, s'il vous plaît laissez-moi savoir ce que vous en pensez.
Mon plugin pour gérer cela, je vais le nettoyer et le mettre dans une réponse dans un délai de quelques heures.
OriginalL'auteur Mantas | 2012-07-04
Vous devez vous connecter pour publier un commentaire.
J'ai eu à jouer avec elle un peu pour le faire fonctionner. J'ai ajouté beaucoup de documentation pour le code du plugin, si vous avez des questions après la lecture par le biais de laissez-moi savoir.
Je suis, y compris une version mise à jour de votre bloc de contenu et le code du plugin bloc.
Est ici mise à jour de votre bloc de contenu. Il ne fonctionnait pas quand enveloppé dans la
<span>
tag, alors je l'ai enveloppé dans un tableau.Vous n'aimez pas la frontière et le redimensionnement des contours qui apparaissent autour de la cellule de données, si c'est le cas, ajoutez-les paramètres de votre configuration:
config.startupShowBorders = false;
config.disableObjectResizing = true;
Quelques remarques:
Le vide
<td>
avant votre départ de contenu est nécessaire, il empêche l'utilisateur d'utiliser "Ctrl A" pour sélectionner tous les éléments qui leur permettrait de supprimer la table masquée.J'ai enlevé le
<p>
balise de départ, le contenu tel qu'il a agi funky dans cette structure.La
<td>
qui détient les tableaux masqués a un
caractère, il empêche l'utilisateur d'utiliser "Ctrl A" pour sélectionner tous les éléments qui leur permettrait de supprimer la table masquée. Il provoque le curseur pour obtenir perdu si vous supprimez tout à droite du curseur, mais vous pouvez cliquer sur le contenu de commencer à le modifier.La
contenteditable="false"
attribut est utilisé par CkEditor et est nécessaire, mais elle ne veut pas faire tout le travail. Vous pouvez essayer le nouveau code HTML sans activer le plugin pour voir l'effet qu'elle a par elle-même.Il y a des notes dans le code du plugin sur les classes et les ID que j'ai utilisé.
Voici le code du plugin, il est appelé "cwjdsjcsconfineselection".
Pour ajouter le plugin:
Créez un dossier appelé "cwjdsjcsconfineselection" dans le répertoire des plugins:
ckeditor/plugins/
Créez un fichier appelé "plugins.js" dans ce répertoire et de coller le code ci-dessous dans ce fichier. Mon erreur: le fichier est nommé plugin.js, pas de plugin(s).js.
Si vous avez déjà des plugins supplémentaires, ajouter "cwjdsjcsconfineselection" à la extraPlugins paramètre de configuration, sinon, ajouter ce paramètre à votre configuration:
config.extraPlugins = 'cwjdsjcsconfineselection';
Le plugin devrait fonctionner de la prochaine fois que vous chargez de l'éditeur.
Pour ma situation, j'ai une boîte de dialogue apparaît lorsque l'utilisateur clique dans une non-modifiable zone d'expliquer pourquoi le curseur a été déplacé de retour à la sélection précédente. Cela ne semble pas nécessaire pour votre utilisation, j'ai donc commenté.
Pour vérifier que le plugin est chargé ajouter une alerte après l'instance prêt de déclenchement:
Pour vérifier que le plugin est déclenché lorsque la sélection change, ajouter une alerte après la elementsPathUpdate déclencheur:
J'ai regardé le code source de votre page avec firebug et ne voyez pas la commande pour remplacer le textarea avec CkEditor:
CKEDITOR.replace( 'xxx' );
. Si ce n'est pas le problème, essayez de mettre lealert()
après lainstanceReady
comme indiqué en fin de ma réponse, puis commenter le reste du code. Qui va vous montrer si le plugin est en cours de chargement. Si l'alerte fonctionne, décommentez les sections jusqu'à ce que le problème se produit de nouveau. C'est juste après le 11 AM par moi, si vous êtes disponible, nous pouvons parler dans la zone de chat pendant que vous travaillez.La zone de charge dans la ligne 245 où la catégorie est définie à "ckeditor". Lorsque ses remplacé Template1 est mis dans l'aide setData(). Tout fonctionne très bien, sauf si j'ai mis le nom du plugin dans le fichier config des plugins additionnels ligne. Je n'obtiens des messages d'alerte ainsi, lorsqu'il est inséré. La même chose arrive lorsque je mettre n'importe quel nom aléatoire dans le fichier de configuration des plugins additionnels ligne. Je ne peux que supposer que le plugin ne prend pas en charge pour certains de la syntaxe ou le répertoire de la raison. J'ai créé un dossier "cwjdsjcsconfineselection" dans ckeditor répertoire de plugins et plugins.js à l'intérieur du dossier. Je suis référencement cwjdsjcsconfineselection dans le fichier de configuration.
bien entendu, nous pouvons chat, merci
aussi theres aucun plugin tel dossier que 'elementspath' dans mon répertoire, mais il fonctionne comme par défaut et n'est pas désactivé.
OriginalL'auteur codewaggle
Je me rends compte que c'est fermé et résolu, mais ici, c'est une option:
Ajouter la table juste à temps après que l'utilisateur soumet votre formulaire ou votre CKE contenu est utilisé. Il vous suffit de ne pas ajouter de l'invisible de la table, mais lorsque l'utilisateur clique sur "soumettre", l'ajouter ensuite à ce qui est posté. Alternativement, si vous avez besoin de le modifier ultérieurement, il suffit de retirer avant de l'insérer dans l'éditeur, puis ajouter encore une fois Juste À Temps avant de poster. Pas de piratage de la CKE core et pas de plugins requis que l'action se passe à l'extérieur de CKE.
OriginalL'auteur Nenotlep
J'avais une exigence semblable, mais n'ai pas trouver ma réponse en ligne.
Dans mon cas, je souhaite soutenir le caractère de tabulation dans l'éditeur par l'ajout d'un
pre
élément du contenu:Mais maintenant, l'utilisateur peut utiliser les touches fléchées ou cliquez sur la souris et commencer le montage à l'intérieur de la
pre
élément. J'écoute donc le 'clic' et 'keyup' événements et de déplacer le curseur s'ils sont à l'intérieur de lapre
.OriginalL'auteur lance-java