Question

Tout d’abord, j’utilise sIFR3, r419 (je ne parviens pas à effectuer la mise à niveau car je n’ai pas accès au flash ...). J'ai une page Web où j'ai remplacé tous les H1, H2 et H3 existants par sIFR - cela fonctionne à merveille. Mais je voudrais utiliser l'éditeur de texte enrichi YUI. Le problème avec cet éditeur est qu’il utilise également H1, H2 et H3 dans sa barre d’outils. Ces deux choses combinées est, hein, plutôt moche :) L'ensemble de l'éditeur se trouve dans une division de la classe "yui-skin-sam". J'ai ajouté le code suggéré par le WIKI de sIFR en haut de mon fichier sifr-config.js:

parseSelector.pseudoClasses = {
'not': function(nodes, selector) {
var result = [];
each: for(var i = 0, node; i < nodes.length; i++) {
  node = nodes[i];
  var ignore = parseSelector(selector, node.parentNode);
  for(var j = 0; j < ignore.length; j++) {
    if(ignore[j] == node) continue each;
  }
  result.push(node);
}
return result;
}
}

Et ma question est la suivante: que dois-je faire dans le fichier sifr-config.js pour sélectionner tous les types H1, H2 et H3, à l’exception de ceux figurant dans la division ".yui-sam-skin"? Ou plus exactement, comment dois-je spécifier le ou les sélecteurs?

Merci d'avance!

Zyber

Ajouté: Si je change le sélecteur de h2 en div: not (.yui-toolbar-titlebar) > h2 cela fonctionne en quelque sorte. Si je règle le sélecteur sur div: not (.yui-sam-skin)> g2; ??h2, cela ne fonctionne PAS - il reste le texte sifré. J'ai dit que cela fonctionnait en quelque sorte parce que le script applique toujours la classe .sifr-active à cet h2, ce qui rend le h2 invisible. J'ai donc besoin de quelques lignes dans le fichier sifr-screen.css:

.sIFR-active .yui-toolbar-titlebar h2 {
    visibility: visible;
    font-family: verdana, sans-serif;
}

Et cela est agaçant! Ce problème est-il résolu dans les nouvelles versions de sIFR3?

Merci encore!

Était-ce utile?

La solution 2

D'accord, j'ai donc finalement trouvé une solution laide. Au-dessus de sifr-config.js:

function sIFRignore(selector) {
    var nodes = sIFR.dom.querySelectorAll(selector);
    for(var i=0; i < nodes.length; i++) {
        var node=nodes[i];
        node.style.visibility  = 'visible';
        node.style.fontFamily  = 'Verdana';
        sIFR.dom.addClass("sIFR-ignore", node);
    }
    return true;                
}

Je devais ajouter ce style-chose parce qu'au moins firefox lui donnait quand même le style du nom .sIFR-active! C'est un bug connu, mais bon, ça marche (presque!).

Donc, juste avant sIFR.activate, j'ai ajouté les lignes

sIFRignore(".yui-skin-sam * h2");
sIFRignore(".yui-skin-sam * h3");

Autres conseils

div: not (.yui-sam-skin) h2 devrait fonctionner, je pense… le sélecteur se situe en dehors de sIFR proprement dit, rien n'a donc changé dans les versions ultérieures. Vous pouvez essayer de permuter le code de sélecteur en jQuery, par exemple: http://wiki.novemberborn.net/sifr3 / parseSelector .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top