带有javascript的选定文本的背景色
Background color of selected text with javascript
我有一个内容编辑="true"的div,我想获取所选文本的背景颜色。它在Chrome中工作正常,但在Firefox中一直返回"透明"而失败。现在我尝试这样做。.HTML:
<div contenteditable="true" id="selector" style="background-color: rgb(255,255,0);">
Test back<span style="background-color: rgb(255,0,0);">ground</span> color.
</div>
爪哇语
$('div#selector').on('mouseup', function (){
alert(document.queryCommandValue('backColor'));
});
示例:http://jsfiddle.net/4Wk2X/11/
你知道为什么会这样吗?
我让它像这样工作:
$('div#selector').on('mouseup', function (){
alert($(this).css('color'));
});
看小提琴
我设法通过使用选择的父级和 CSS 背景颜色属性来使其工作。
var selectionParent = function () {
var parent = null, sel;
if (window.getSelection) {
sel = window.getSelection()
if (sel.rangeCount) {
parent = sel.getRangeAt(0).commonAncestorContainer
if (parent.nodeType != 1) {
parent = parent.parentNode
}
}
} else if ( (sel = document.selection) && sel.type != "Control") {
parent = sel.createRange().parentElement()
}
return parent
}
$('div#selector').on('mouseup', function (){
alert(selectionParent().css('background-color'));
});
见 http://jsfiddle.net/4Wk2X/14/
>$(window.getSelection().focusNode.parentNode).css('background-color')
有效。
$(window.getSelection().focusNode.parentNode)
查找文本的父节点,并且它是具有相关 CSS 属性的父节点。
更准确地说,我们将获得您结束选择的节点的父节点。 如果要开始选择,可以使用$(window.getSelection().anchorNode.parentNode)
。由于选择可以包含许多背景颜色,因此您必须选择。
document.execCommand('styleWithCSS',false,true);
value = document.queryCommandValue('backColor');
document.execCommand('styleWithCSS',false,false);
效果很好。
这是我
的想法(不是测试):
alert($(document.getSelection().anchorNode).css('background-color'));
相关文章:
- jquery.each(第2行)添加背景色
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- 悬停时淡入背景色
- 如何在单击单元格中的链接值时动态更改表行背景色
- Gridview内部的下拉框在回发时未保留背景色
- 用背景色智能填充引导列
- 带有背景色的高图表柱形图
- 带有javascript的选定文本的背景色
- 当代码使用背景色时无法更改位置
- 将元素放置在方框顶部时更改方框的背景色
- 检索表中元素的背景色
- 在Wordpress中创建随机背景色
- 存在事件的单元格的jQuery DatePicker背景色(加载时)
- CSS转换未在增加高度时更新背景色
- 内联文本背景色,不划分为单独的元素
- 删除页面中所有文本的背景色,无论我们是否有选择
- 在.md文件中:如何为文本添加背景色?或将文本放入彩色框中
- 更改文本区域中文本后面的背景色
- 尝试在SVG 1.1中创建一个可重用的文本框(带有正方形背景色的文本)
- 更改所选文本的背景色,HTML JQUERY