TinyMCE et formulaire dynamique
Je me suis heurté à un mur hier avec TinyMCE.
En effet, celui-ci n’aime pas trop qu’on s’amuse à ajouter/supprimer des textareas.
Encore moins quand on ajoute le même textarea qu’il y a deux secondes. (oui, je vide le DOM quand un élément est caché, j’ai des templates, plus simple à gérer).
Donc, dans la théorie, pour supprimer TinyMCE d’un textarea, il suffit de faire un :
tinyMCE.execCommand('mceRemoveControl', false, idTextarea);
Dans la pratique, le faire supprime bien les éléments de TinyMCE de votre textarea mais celui-ci gardera toujours la référence de celui-ci. Du coup, si vous tentez de réinitialiser un textarea ayant le même id que la précédente, tinyMCE plantera ou ne fera rien du tout.
La solution est donc de supprimer la référence du textarea de TinyMCE, contenu dans tinyMCE.editors
Cette technique barbare qui marche bien consiste donc à chercher tous les textareas de l’élément que vous voulez supprimer et de vérifier si TinyMCE a cette référence en cache :
$.each(tinyMCE.editors, function(i, elem){
if(form.find('#'+elem.id)){
elem.remove();
}
});
Donc oui, TinyMCE est bien merdique, mais les clients sont contents.
Vous avez vu la tronche du whois d’apple.com aujourd’hui ?
[Flash 9 is required to listen to audio.]
Composed & Arranged by Kristopher Fisher
Recorded & Mixed by Kristopher Fisher
:3:3:3
Une petite lib pour géré les évènements propre à tablette/mobile, simple et plutôt clean !
Mise à jour d’Include.js
Yop tout le monde !
Un petit coucou pour vous dire que j’ai modifié quelque peux Include.js.
On peut tout d’abord noté le patch du gros bug qui permettait de charger en boucle le même script. Qu’il soit donc rechargé, re-interprété… Pas pratique dans certain cas.
J’ai aussi corrigé une grosse fuite mémoire sur IE (merci les tickets) venant des onReadyStateChange (si ça parle à quelqu’un).
Enfin, merci la communauté, Include.js gère maintenant les dépendances : n’exécuter qu’un script qu’une fois les dépendances chargés.
Du coup, Include pèse maintenant 1,036 ko (j’ai une 20 aine d’octets de trop :( ) et environ 520 octets gzipé. Légé et pratique.
ça se chope ici : https://github.com/CapMousse/include.js et je vos invite à me remonter les bug !
La nature aime les maths !
(Source : casi-pero-no)
Javascript templating
Vu que je m’ennuyais dans le train ce matin, j’ai fais un petit moteur de template en javascript.
var template = function(template, params){
return template.replace(/{(.+)}/g, function(replace,string){
replace = params;
string.replace(/[^.]+/g, function(element){
replace=replace[element];
});
return replace;
});
};
Oui, je sais, un autre script ressemblant existe sur 140byt.es, je m’en suis aperçus en arrivant…