1

首先,我使用的是 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 中做什么来选择除 div“.yui-sam-skin”中的所有 H1、H2、H3 之外的所有 H1、H2、H3?或者更确切地说,我应该如何指定选择器?

提前致谢!

Zyber

补充:如果我将选择器从 h2 更改为 div:not(.yui-toolbar-titlebar)>h2 它有点工作。如果我将选择器设置为 div:not(.yui-sam-skin)>h2 它不起作用 - 它仍然会更改为 sifr'd 文本。我说它有点工作,因为脚本仍然将类 .sifr-active 应用于那个 h2,这使得 h2 不可见,所以我需要一些行到 sifr-screen.css:

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

这感觉很烦人!这个问题在新版本的 sIFR3 中解决了吗?

再次感谢!

4

2 回答 2

0

div:not(.yui-sam-skin) h2我认为应该可以工作……选择器的内容不在 sIFR 范围内,因此在以后的版本中不会发生任何变化。您可以尝试将选择器代码交换为 jQuery:http ://wiki.novemberborn.net/sifr3/parseSelector 。

于 2009-06-18T12:04:55.947 回答
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");
于 2009-06-18T22:16:21.433 回答