web-dev-qa-db-fra.com

Définir la valeur de la zone de texte avec javascript après l'initialisation de TinyMCE

J'ai une zone de texte et j'utilise tinyMCE sur cette zone de texte.

Ce que je fais en fait, c'est que lorsque la page est ouverte, je remplis la zone de texte avec du texte, puis j'initialise le tinyMCE.

Le problème est que lorsque j'essaie de modifier la valeur de la zone de texte après l'initialisation de tinyMCE, il ne se passe rien.

Voici un exemple.

  1. Création de la zone de texte:

    <textarea style="width: 95%;" name="title"  id="title"></textarea>
    
  2. Remplir la zone de texte:

    $('#title').html("someText");
    
  3. Initialisation de tinyMCE

    tinyMCE.init({
            // General options
            mode : "specific_textareas",
            theme : "advanced",
            width: "100%",
            plugins : "pagebreak,paste,fullscreen,visualchars",
    
            // Theme options
            theme_advanced_buttons1 : "code,|,bold,italic,underline,|,sub,sup,|,charmap,|,fullscreen,|,bullist,numlist,|,pasteword",
            theme_advanced_buttons2 :"",
            theme_advanced_buttons3 :"",
            theme_advanced_buttons4 :"",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",
            valid_elements : "i,sub,sup",
            invalid_elements : "p, script",
            editor_deselector : "mceOthers"
        });
    
  4. Je voudrais changer le contenu de la vue texte (mais cela ne fonctionne pas)

J'ai essayé d'utiliser la même chose qu'avant d'initier le tinyMCE

    $('#title').html("someModifiedText"); // does not work

J'ai également essayé de supprimer tinyMCE:

    if(tinyMCE.getInstanceById('title'))
    removeTinyMCE("title");

Avec

function removeTinyMCE (dialogName) {
    tinyMCE.execCommand('mceFocus', false, dialogName);
    tinyMCE.execCommand('mceRemoveControl', false, dialogName);

}

Et la réutilisation:

    $('#title').html("someModifiedText"); // does not work

Je suis à court d'idées ... Merci beaucoup pour votre aide ....

31
Miloš
<textarea id="content" name="content">{{html_entity_decode($yourstringdata)}}</textarea>

Cela fonctionne pour moi, décodez vos données html et placez-les entre les balises de début et de fermeture de la zone de texte.

0
Rosidin Bima