首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rangy遍历getSelection类

Rangy遍历getSelection类
EN

Stack Overflow用户
提问于 2015-10-23 21:14:41
回答 1查看 77关注 0票数 0

我正在使用Tim的Rangy库来制作一个“简单”的文本编辑器,我使用静态类来表示斜体、粗体、罢工和下划线,如下所示:

myCss.css

代码语言:javascript
复制
.n {
    font-weight: bold;
}

.i {
font-style: italic;
}

.t {
text-decoration: line-through;
}

.s {
    text-decoration: underline;
}

如果我想切换一个特定的类,我只是发送了一个值,这样它就会在createClassApplier中使用,并将它应用于选择,如下所示:

代码语言:javascript
复制
applier = rangy.createClassApplier("n");
applier.toggleSelection();

它工作得天衣无缝。现在我正在尝试实现前景和背景颜色,我考虑创建一个名为foreground的动态样式类,并为用户选择的样式设置text- implement color (从颜色选择器中),或者使用一个预建的类,比如

代码语言:javascript
复制
.color1 { 
text-decortion-color: red;
}

.color2 { 
text-decortion-color: blue;
}

然后继续..。

但是通过这种方式,我需要获得选定的文本类,然后迭代并检查它是否已经设置,如果没有,删除其他设置的颜色,然后添加新的颜色(很难吗?)

我更喜欢使用像这样的东西:

代码语言:javascript
复制
applier = rangy.createClassApplier("f");
applier.text-decoration-color: #000FFF;

但是ofc在我脑海之外是行不通的..

如果迭代是一种“困难的方式”,那么什么是为背景和前景应用颜色的好方法呢?

EN

回答 1

Stack Overflow用户

发布于 2015-10-24 14:33:15

Rangy ->的创建者找到并提供了一种很好的方法

https://stackoverflow.com/a/22528320/2582318

为每一类颜色创建新的应用程序,然后遍历它以检查其应用情况

代码语言:javascript
复制
var font16Applier = range.createCssClassApplier("font16");
var font17Applier = range.createCssClassApplier("font17");
var font18Applier = range.createCssClassApplier("font18");

var appliers = [font16Applier, font17Applier, font18Applier];

for (var i = 0, len = appliers.length; i < len; ++i) {
    if (appliers[i].isAppliedToSelection()) {
        if (i < len - 1) {
            appliers[i].undoToSelection();
            appliers[i + 1].applyToSelection();
            break;
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33303233

复制
相关文章

相似问题

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