【问题标题】:Changing class and style attributes inside a RTE (designMode on)更改 RTE 中的类和样式属性(designMode on)
【发布时间】:2012-07-11 16:16:34
【问题描述】:

我正在使用 CLEditor 在我的 web 应用程序中自定义富文本编辑器。对于更改字体和字体大小,我更喜欢使用比默认 execCommand 更精细的控件,尤其是对于字体大小,因为据我所知,它只是将其设置为旧的 HTML 属性(1-7而不是 14pt 或类似的东西)。所以我想我可以设置样式属性,或者为 CLEditor 生成的 iframe 内的标签添加一个类。但是,我似乎找不到执行此操作所需的命令。

所以我希望能够做这样的事情(使用 jQuery 来帮助):

$("#fontSelector").change(function() {
    editor.execCommand("style", "font-family: " + $(this).val() + ";");
});

我想这可能需要将选定的文本包装在一个跨度或其他东西中,然后设置样式属性。如果有办法使用 jQuery 的 addClasscss 方法,那就更好了。

【问题讨论】:

    标签: javascript jquery attributes contenteditable designmode


    【解决方案1】:

    document.execCommand() 没有执行此操作的命令标识符。要处理 CSS 类的情况,您可以使用我的 Rangy 库中的 CSS class applier module

    【讨论】:

    • 这通常像做梦一样工作,但是当我有两个不同的类(例如,font-timesfont-arial)相互嵌套时,我遇到了麻烦。我希望能够从选择中的所有内容中删除某些类。有没有办法做这样的事情(使用 jQuery 就像 $(".font-arial", selection).removeClass("font-arial");
    • 查看您的文档,DOM 模式听起来可以使用,但可能不是其他两种。有没有办法将 Rangy 范围视为 DOM 对象,如果没有,哪些浏览器不支持 DOM 范围?
    • cmets 最初可能不是询问问题的最佳场所,但我想出了一种(某种)模拟这种行为的方法。我在当前选择中添加了一个“selectedText”类,然后从那里使用 jQuery 选择器 ($(".selectedText .font-arial, .selectedText.font-arial").removeClass("font-arial");)
    猜你喜欢
    • 2019-09-08
    • 2013-11-04
    • 2012-04-25
    • 1970-01-01
    • 2019-03-14
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多