Comme le titre l'indique, j'ai consulté la documentation officielle mais cela ne fonctionne pas; voici mon code JavaScript (utilisant jQuery):
$(document).ready(function() {
tinymce.init({
element_format: "html",
schema: "html4",
menubar: false,
plugins: 'preview textcolor link code',
selector: 'TEXTAREA#rtf',
toolbar: 'preview | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | blockquote subscript superscript | code'
});
tinymce.activeEditor.setContent($('TEXTAREA#rtf').text());
});
(Cough) D'une certaine manière, après avoir tout restauré là où j'ai commencé, cela fonctionne:
$(document).ready(function() {
tinymce.init({
element_format: "html",
menubar: false,
plugins: 'preview textcolor link code',
schema: "html4",
selector: 'TEXTAREA#rtf',
toolbar: 'preview | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | blockquote subscript superscript | code'
});
});
Je suppose que cela est dû au cache UA ou au cache de résultats transformé XSLT qui a provoqué le problème; Merci encore pour votre temps!
voici comment je l'ai implémenté:
setTimeout(tinyMCE.init({
selector: "textarea.edit_notes",
height: editor_height,
theme: "modern",
menubar: "tools table format view insert edit",
force_br_newlines : false,
force_p_newlines : false,
forced_root_block : '',
//plugins: "fullpage",
valid_elements : '*[*]',
setup: function(ed){
ed.on("init",
function(ed) {
tinyMCE.get('testeditor').setContent($('#testeditor').val());
tinyMCE.execCommand('mceRepaint');
}
);
}
}), 50);
Donner un coup de feu
J'ai trouvé une meilleure solution qui fonctionne n'importe où dans le code (et ce n'est pas un hack, contrairement à l'astuce setTimeout)
tinymce.get('tinymce-element-id').on('init',function(e) {
e.target.setContent('my custom content');
});
tinymce.activeEditor.setContent('<span>some</span> html');
https://www.tinymce.com/docs/api/tinymce/tinymce.editor/#setcontent
Ce fil m'a mis sur la bonne voie alors j'ai pensé partager ma solution avec v4
tinymce.init({
...,
init_instance_callback:function(editor){
editor.setContent(__YOUR_CONTENT__);
}
});
Ce code est exécuté dès que le document est prêt, de sorte que la seule chose à faire est de définir le contenu même avant que textarea ne contienne du contenu. Une question: où et comment le contenu est-il défini dans la zone de texte?
Deuxièmement, pouvez-vous placer tinyMCE.init({ .... });
dans setTimeOut.
J'espère que cela t'aides.
tinymce.init({
selector: "#txtSummary",
width: '100%',
height: 350,
statusbar: false,
menubar: false,
setup: function (ed) {
ed.on('init', function () {
//Get a value from a hidden variable and set the tiny mce text to it
var signature = $("#hidSignature").val();
this.setContent(signature);
});
},
paste_data_images: true,
plugins: [
"advlist autolink lists link charmap hr anchor pagebreak image",
"searchreplace wordcount visualblocks visualchars code",
"media nonbreaking save table contextmenu directionality"
],
toolbar: "bold italic | alignleft aligncenter alignright alignjustify | bullist numlist | image"
});
Je me souviens avoir fait quelque chose comme ceci une fois, en ajoutant manuellement la valeur textarea à TinyMCE:
tinyMCE.init({
...
setup : function(editor) {
editor.setContent($('TEXTAREA#rtf').text());
}
});
Le paramètre "editor" de la fonction de configuration est une instance de TinyMCE, garantie d’être présente. Je n'ai pas utilisé TinyMCE depuis un moment, mais je me souviens d'avoir eu de nombreux problèmes comme celui-ci! Vous n'êtes pas seul à trouver des problèmes ici.
Mais pourquoi ne pas utiliser quelque chose comme ça? http://www.tinymce.com/wiki.php/Configuration3x:editor_selector
tinyMCE.init({
...
mode : "specific_textareas",
editor_selector : "TEXTAREA#rtf" // CSS Selectors
});
Quel est le moyen par défaut d'utiliser TinyMCE. Il convertira vos zones de texte en instances TinyMCE et maintiendra la valeur synchronisée entre l’entrée et TinyMCE.