iMacro et les Rich Text Editor

-et-les-rich-text-editor.seo" data-text="iMacro et les Rich Text Editor" data-count="horizontal">Tweet

plugin firefox iMacroIl est possible remplir un rich text editor (tinymce, fckeditor, etc ..) avec le plugin iMacro pour Firefox.

iMacro est un outil qui vous permet d’automatiser à peut près tout sur votre navigateur : remplir un formulaire automatiquement, vous logger puis aller dans une page profonde de votre back office, spammer des dizaines de blogs automatiquement, scrapper un site entier extraire votre carnet d’adresse et vos mails de voila (hein Elcherubin !) …

Si comme moi vous utilisez iMacro de manière assez poussée vous vous êtes surement déja confronté aux limitations du plugin firefox comme l’impossibilité (apparente) de remplir un textarea transformé en rich text editor.

Il y a pourtant 3 solutions pour palier à ce problème :

  1. Acheter la version payante de iMacro :D
    En effet elle intègre un tool que je n’ai pas eu l’occasion de tester mais qui s’avère très puissant : le DirectScreen.
    Il permet de simuler les clics de souris et d’automatiser ainsi tous les contenus non html (flash, ajax, etc …)
  2. Désactiver javascript sur votre navigateur (à l’aide de la webmaster developper toolbar par exemple).
    Ca marche très bien pour remplir les textarea mais du coups ca pose d’autres problèmes.
  3. Utiliser la fonction URL GOTO de iMacro, c’est cette solution que je vais développer

iMacro est capable de lancer des commandes javascript grace a la commande URL GOTO=javascript:du javascript à executer

Quasiment tous les RichTextEditor (tous à ma connaissance) fonctionnent de la même manière : ils créent une iframe qui sert d’editeur WYSIWYG à la suite du textarea.
Il ne reste donc plus qu’a trouver l’id de la frame générée (grace au plugin firebug par exemple) et utiliser javascript pour remplir sa balise body par notre texte :

URL GOTO=javascript:document.getElementById('idframe').contentDocument.body.innerHTML="letexte";

Si la frame n’a pas d’id distinctif on peut alors utiliser cette syntaxe :

URL GOTO=javascript:window.frames[0].document.body.innerHTML="letexte";

Si le Rich Text Editor est basé sur tinyMce alors on peut tout aussi bien utiliser l’api tinymce :

URL GOTO=javascript:tinyMCE.activeEditor.setContent("letext");

Si vous testez la macro a ce stade vous allez vous apercevoir qu’il y a un problème, en effet la commande GOTO:javascript va executer l’action mais en afficher le resultat directement dans la fenetre principale et annuler ainsi tous les benefices de cette astuce.
Il va donc falloir ajouter du javascript supplémentaire à la commande.

J’ai donc logiquement ajouté return; ou bien return false;, et la macro ne charge plus le résultat dans la page mais elle ne le charge pas non plus dans l’iframe argh !

J’ai donc finalement ajouté window.location(); et la la macro fonctionne comme attendu (bizarre hein).

Vous aurez remarqué que la fonction window.location(); n’existe pas en javascript et que cela vas provoquer une erreur javascript, c’est justement ca qui fait que la macro fonctionne comme prévu !

Il faut entourer le code javascript avec void(); pour que ca fonctionne comme attendu. (merci 512banque) :

URL GOTO=javascript:void(window.frames[0].document.body.innerHTML="letexte");

Voila vous allez pouvoir remplir les éditeurs WYSIWYG avec iMacro maintenant, et si vous savez également comment se passer de l’erreur javascript je suis preneur !

You can leave a response, or trackback from your own site.

20 Responses to “iMacro et les Rich Text Editor”

  1. geekbay dit :

    Article tresinteressant mais petite question:
    c’est pas plus simple de set en javascript la valeur du textarea qui est en display none ?

  2. Rudy dit :

    Hey bienvenue dans la blogosphère mon Ami ! :)

    Je t’invite à partager une macro ready to go ( et utile si tu vois ce que je veux dire ;) ) pour aider tes nouveaux lecteurs.

  3. geekbay dit :

    c’est ettonnant quand meme et si tu enleve le display:none et que tu met le texte ca ne passe toujours pas ?

    • Beunwa dit :

      Si tu enleve le display non c’est que tu le fait a la main et que tu n’a plus besoin de iMacro !

      1 : a tu testé par toi même ?

      2 : tu peut toujours desactiver javascript

  4. [...] Seo, dev web et plus si affinités zebra seo Aller au contenu AccueilQui suis-je ? ← iMacro et les Rich Text Editor [...]

  5. Remguy dit :

    J’ai suivi l’article du blog de rudy pour venir ici…
    Tu commences fort!! Merci pour cet article!

  6. SEO hosting dit :

    A very interesting read and a great post alltogether. Would you mind if I posted the same article on my blog (with a reference to your website)?

  7. 512banque dit :

    Yo,

    J’avais pas lu la fin de ton texte concernant le problème de la redirection de la page quand on exécute le JS. Du coup j’ai cherché une solution qui me va bien : void().

    Ca donne :

    javascript:void(document.getElementById(‘idframe’).contentDocument.body.innerHTML= »letexte »);

  8. winamax dit :

    merci mais j pense plutôt prendre la version payante sa me parait plus simple

  9. harisseo dit :

    Merci pour l’astuce, je m’en sert à l’instant :)

  10. Amadeus dit :

    Plop,

    Pour publier sur un CP sur WP avec imacros, je désactive le java avec l’add on web developper, puis je peux remplir le texte area normalement.

    Il y a aussi une solution pour avoir la version payante en version d’essai.. a vie ;)

  11. Chuck dit :

    Trop fort !!!!

    Ça fait 3 jours que je cherchais à faire ça :)
    En fait, j’étais capable de remplir le tout avec mon texte avec un WINCLICK X et Y mais y’avait aucunement moyen de mettre le texte en forme… bold, italic et cie…

    Merci :) )

  12. Chuck dit :

    Bon bien encore moi… c’était trop beau pour être vrai… je rencontre un autre problème… c’est étrange mais avec cette solution, je ne suis pas capable de dépasser 447 caractères ! Si j’y vais avec mon ancienne méthode, j’y mets presque 3000 caractères sans problème…

    Quelqu’un aurait-il une idée de cette limitation ?

    Merci d’avance !

Leave a Reply

Powered by WordPress and Divioseo