0

所以我用谷歌搜索了它,我没有找到任何解决方案,所以我在这里发布我的问题。因此,当您在 etherpad 中编写代码时,它会创建如下所示的标记:

<div id="magicdomid17" class="ace-line">
   <span class="author-a-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76z">
         Author1.
   </span>
   <span class="author-a-1z74zz83zuz82z2z67zz815zsz89zz70zz65z8z69zz87z9">
         Author2.
   </span>
</div>

现在它将输出:

Author1.Author2.

根据作者开始使用 etherpad 时选择的内容,具有不同的背景颜色Author1.和文本。Author2.

我的问题是 etherpad 如何处理数据以将背景颜色放在特定文本上。我知道这与给跨度的类有关: author-a-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76z对于第一作者

author-a-1z74zz83zuz82z2z67zz81zsz89zz750zz65z8z659zz87z9为第二作者。

任何人都可以根据这些类名称解释如何为这些文本设置背景颜色吗?哪个文件对此负责?

提前致谢

4

1 回答 1

0

因此,与大多数 etherpad 问题一样,也没有人回答这个问题。如果有人在根据类名决定文本颜色时遇到同样的问题,我得到了解决方案。

您只需要在使用 etherpad 的前端 js 文件中定义一个对象变量。在这个 var 中,我们将作者类名作为键,并将其各自的颜色作为值。

var window.authClassColorObj = {};

现在进入ace2_inner.js文件并找到函数setAuthorStyle(),将这些行添加到该函数中的var authorSelector = getAuthorColorClassSelector(getAuthorClassName(author));行之后:

parent.parent.parent.window.authorClassColorObj[getAuthorClassName(author)] = info.bgcolor;

现在我正在通过三层访问我的前端对象 var,所以我正在使用parent.parent.parent.,它可以根据您的文件结构而有所不同。

想法是,这是您可以用适当的值填充对象的地方。

然后你可以从前端访问你的对象,例如对于我来说,它会输出这个:

console.log(window.authClassColorObj);

输出:

object{
    author-a-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76z:"#f50966"
    author-a-1z74zz83zuz82z2z67zz815zsz89zz70zz65z8z69zz87z9:"#20a251"
}

此信息可进一步用于您想要在 pad html 代码中进行的任何更改。

于 2016-11-22T10:42:55.080 回答