2009-06-17 12 views
1

Als erstes benutze ich sIFR3, r419 (Ich kann nicht upgraden, da ich keinen Zugriff auf Flash habe ...). Ich habe eine Webseite, wo ich alle bestehenden H1, H2 und H3 mit sIFR ersetzt habe - das funktioniert wie ein Zauber. Aber ich würde gerne den YUI Rich Text Editor verwenden. Die Sache mit diesem Editor ist, dass es auch H1, H2 und H3 in seiner Toolbar-Sache verwendet. Diese beiden Dinge kombiniert, ist, ziemlich hässlich :) Der gesamte Editor ist innerhalb eines Div mit der Klasse "yui-Haut-sam". Ich habe den vorgeschlagenen Code von sIFR der WIKI an der Spitze meiner sifr-config.js hinzugefügt:Speziell nicht bestimmten Text ersetzen - funktioniert nicht

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; 
} 
} 

Und meine Frage ist: Was soll ich tun, in der sifr-config.js all H1, H2 zu wählen, H3 außer denen, die innerhalb der div ".yui-sam-skin" sind? Oder genauer, wie soll ich den/die Selektor (e) angeben?

Vielen Dank im Voraus!

Zyber

Hinzugefügt: Wenn ich die Wähler von h2 zu div ändern: nicht (.yui-Toolbar-titlebar)> h2 es irgendwie funktioniert. Wenn ich den Selektor auf div: not (.yui-sam-skin)> h2 setze, funktioniert es NICHT - es ändert sich immer noch in den Sifrd-Text. ich sagte, es ist eine Art funktioniert, weil das Skript noch die Klasse .sifr-aktiv auf diese h2 gelten, die die h2 ich einige Zeilen in die sifr-screen.css benötigt unsichtbar so macht:

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

Und das fühlt sich nervig! Ist dieses Problem in neueren Versionen von sIFR3 gelöst?

Danke nochmal!

Antwort

0

Okay, also habe ich endlich eine hässliche Lösung gefunden. Oben 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;     
} 

Ich brauchte jene Stil-Sache hinzufügen, weil zumindest noch firefox es den Stil gab, wie es genannt wurde .sIFR-aktiv! Das ist ein bekannter Fehler, aber hey, es funktioniert (fast!).

So kurz vor sIFR.activate ich hinzugefügt, um die Linien

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

div:not(.yui-sam-skin) h2 sollte funktionieren Ich denke ... das Selektor Zeug ist außerhalb von SIFR richtig, so nichts in späteren Versionen geändert haben wird. Sie könnten versuchen, den Selektor-Code beispielsweise an jQuery zu übergeben: http://wiki.novemberborn.net/sifr3/parseSelector.

+0

Das ist mein obwohl auch war - aber es wird nicht so entweder arbeiten. Ich werde den anderen Selektor-Code testen, und ich werde zurückkehren ... – Zyberzero

+0

Jetzt habe ich mit jQuery mit dem gleichen Ergebnis getestet. Ich denke, dass meine "Lösung" eine sIFRignore (Selektor) Sache sein wird, die durch den Selektor geht, z. .yui-skin-sam * h3 und füge die Klasse sIFR-ignore hinzu. – Zyberzero

Verwandte Themen