首先,我正在使用sIFR3,r419(因为我无法访问闪存,所以无法升级...)。 我有一个网页,我用sIFR替换了所有现有的H1,H2和H3 - 这就像一个魅力。但我想使用YUI富文本编辑器。该编辑器的用处是它在工具栏中也使用了H1,H2和H3。这两件事结合起来,呃,非常难看:) 整个编辑器都在“yui-skin-sam”类的div中。我在sifr-config.js的顶部添加了sIFR WIKI的建议代码:
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;
}
}
我的问题是:我应该在sifr-config.js中做什么来选择所有H1,H2,H3除了那些在div“.yui-sam-skin”中的那些?或者更准确地说,我应该如何指定选择器?
提前致谢!
Zyber
添加了: 如果我将选择器从h2更改为div:not(.yui-toolbar-titlebar)&gt; h2它有效。如果我将选择器设置为div:not(.yui-sam-skin)&gt; h2它不起作用 - 它仍然会更改为sifr'd文本。 我说它有点工作,因为脚本仍然将类.sifr-active应用于h2,这使得h2不可见所以我需要一些行到sifr-screen.css:
.sIFR-active .yui-toolbar-titlebar h2 {
visibility: visible;
font-family: verdana, sans-serif;
}
这感觉很烦人!在较新版本的sIFR3中是否解决了这个问题?
再次感谢!
答案 0 :(得分:0)
div:not(.yui-sam-skin) h2
应该工作......选择器的东西在sIFR之外,所以在以后的版本中没有任何改变。您可以尝试将选择器代码交换到jQuery:http://wiki.novemberborn.net/sifr3/parseSelector。
答案 1 :(得分:0)
好的,所以我最后提出了一个难看的修复方法。在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;
}
我需要添加那些样式的东西,因为至少firefox仍然给它的样式,因为它被命名为.sIFR-active!这是一个已知的错误,但是嘿,它有效(差不多!)。
所以,就在sIFR.activate之前,我添加了行
sIFRignore(".yui-skin-sam * h2");
sIFRignore(".yui-skin-sam * h3");