Bonjour à tous,
Je travaille en ce moment sur un userscript (avec Tampermonkey) pour me faciliter l'utilisation d'un site web. Ce site utilise TinyMCE v4.
Dans mon script je souhaite mettre en contenu par défaut au sein de l'éditeur TinyMCE (activeEditor). Je précise que ce n'est pas mon script qui charge et instancie TinyMCE ...
Actuellement je mets un setTimeout de 3 seconde pour être sûr que TinyMCE est instancié avant de l'utiliser :
Cela fait le job, mais ... en fait cela n'attends pas vraiment que TinyMCE soit prêt, et si cela prends plus de 3 secondes à la page pour se charger (cela arrive) alors j'ai une jolie erreur dans la console (tinyMCE is not defined) et le job n'est pas fait ... pas cool ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 setTimeout( function(e) { tinyMCE.activeEditor.insertContent( 'test' ); }, 3000 );
J'ai donc essayé d'autres solutions, et j'en suis à faire un système de boucle super moche :
Cela fonctionne en apparence, mais c'est moche et pas vraiment pertinent en fait ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 waitForTinymce( function(e) { waitForEditor( function(e) { setTimeout( function(e) { tinyMCE.activeEditor.insertContent( 'test' ); },100 ); }); }); function waitForTinymce( callback ) { if( typeof( tinyMCE ) !== 'undefined' ) { callback(); } else { setTimeout( function(e) { waitForTinymce( callback ); },100); } } function waitForEditor( callback ) { if( tinyMCE.activeEditor !== null ) { callback(); } else { setTimeout( function(e) { waitForEditor( callback ); },100); } }
Ma question est donc : est-ce que vous connaissez un moyen d'utiliser le modèle événementiel pour attendre l'éditeur TinyMCE et pour travailler avec ? Si oui, quel événement dois-je écouter, et surtout comment l'implémenter dans mon userscript ?
D'avance merci !
Partager