代码之家  ›  专栏  ›  技术社区  ›  Mechlar

用JS更改文本选择突出显示

  •  5
  • Mechlar  · 技术社区  · 15 年前

    对于标准浏览器,您可以使用以下内容更改选定文本的颜色:

    div.txtArea::selection {
     background: transparent;
    }
    
    div.txtArea::-moz-selection {
     background: transparent;
    }
    
    div.txtArea::-webkit-selection {
     background: transparent;
    }
    

    但是我需要用JavaScript来代替。

    $('div.txtArea').css({
        'selection': 'transparent',
        '-moz-selection': 'transparent',
        '-webkit-selection': 'transparent'
    });
    

    1 回复  |  直到 12 年前
        1
  •  6
  •   Andy E    15 年前

    没有用于操作伪类的DOM接口。您唯一能做的就是将规则添加到样式表中。例如:

    // Get the first stylesheet 
    var ss = document.styleSheets[0]
    
    // Use insertRule() for standards, addRule() for IE
    if ("insertRule" in ss) {
        ss.insertRule('div.txtArea::-moz-selection { background: transparent; }', 0);    
        ss.insertRule('div.txtArea::selection { background: transparent; }', 0);    
        ss.insertRule('div.txtArea::-webkit-selection { background: transparent; }', 0);    
    }
    

    您可以使用访问和更改规则 , stylesheet.rules[索引]。样式

    我没有使用IE6-8的例子 ::selection .