首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击时使用execCommand

点击时使用execCommand
EN

Stack Overflow用户
提问于 2011-08-30 00:26:50
回答 1查看 1.1K关注 0票数 0

我试图使当前选定的节点蓝色的字体颜色。目前,我有以下代码,它只在高亮显示并单击时使文本变为蓝色。

当我单击文本时,整个节点如何能够使用execCommand更改其字体颜色?

代码语言:javascript
复制
$('[contenteditable]').bind('click', function() {
    currentSentence = window.getSelection().focusNode;
    caretPosition = window.getSelection().focusOffset;

    document.execCommand('ForeColor', false, '000');
});
EN

回答 1

Stack Overflow用户

发布于 2011-08-30 23:23:10

focusNode将只为您提供容器节点的焦点选择,这是最近移动的选择边界。如果这是您想要的,您可以保存所选内容,将选择设置为包含focusNode,然后调用document.execCommand()。如果您需要恢复选择,这是一个更困难的问题。

请注意,所有这些都不能在IE < 9中工作,IE不支持window.getSelection()Range,而是有一个完全不同的API。

jsFiddle:http://jsfiddle.net/timdown/J6fAa/

示例代码:

代码语言:javascript
复制
$('[contenteditable]').bind('click', function() {
    var sel = window.getSelection();
    var focusNode = sel.focusNode;
    var range = document.createRange();
    range.selectNode(focusNode);
    sel.removeAllRanges();
    sel.addRange(range);
    document.execCommand('ForeColor', false, '000');
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7237506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档