web-dev-qa-db-fra.com

Insérer un texte personnalisé dans JCE à l'aide de Javascript

Comment insérer du texte personnalisé dans JCE v. 2.3.4.4 à l'aide de javascript?

J'ai ouvert la source de la page et vu que l'éditeur est un iframe. Le texte est en <body id="tinymce">.

J'essayais quelque chose comme:

$("body#tinymce").html("mytext");

mais ça ne marche pas. Bien sûr, il est exécuté sur domReady.

1
turson

J'ai trouvé une solution.

var id = "yourTextAreaId";
var tmce_el = tinyMCE.get(id);
if (tmce_el != undefined)
{
    tmce_el.execCommand('mceSetContent', false, value);
}
else
{
    document.getElementById(id).innerHTML = value;
    document.getElementById(id).value = value;
}
1
turson

Il existe actuellement un plugin de bouton personnalisé fourni par les créateurs de JCE ...

https://github.com/widgetfactory/jce-custom

0
dBlaze

Je pense que le meilleur moyen est d'utiliser le Joomla.editors.instances

Vous pourrez valider que textAreaId est chargé, puis mettre à jour avec la méthode setValue.

if (Joomla.editors.instances.hasOwnProperty('yourTextAreaId')) {
    Joomla.editors.instances['yourTextAreaId'].setValue(value);
} else {
    // do you custom script as fail-safe
}

J'ai testé cela avec codemirror, tinyMCE, aucun (quand aucun éditeur n'est défini) et cela fonctionne très bien.

0
Llewellyn