JavaScript: 更改选择的背景色

3

我应该如何在Javascript中实现这个?

// CSS
*::-moz-selection{
 background:transparent; 
}

我尝试了这些方法,但并不是很有效:

// Javascript
document.mozSelection = "transparent";
document.body.mozSelection = "transparent";
2个回答

5
您可以在样式表中添加规则。
// Get the first stylesheet 
var ssheet = document.styleSheets[0];

if ("insertRule" in ss) {
    ss.insertRule('#yourdivcontainer::-moz-selection { background: transparent; }', 0);        
}

我认为这样做并不好。你应该使用CSS类来定义选中文本的颜色,并通过JS修改类本身,而不是直接修改样式。


2

::选择器用于伪元素,CSS对象不对应实际的元素节点。由于没有元素节点可以匹配::-moz-selection,所以您不能直接在元素的.style.background属性上设置它的样式。

相反,您需要插入一个新的样式表规则来复制上述CSS(请参见此问题了解几种方法)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接