etherpad如何识别作者的颜色?

时间:2016-11-21 08:53:23

标签: etherpad

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

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

现在它将输出:

Author1.Author2.

Author1.Author2.文本提供不同的背景颜色,具体取决于作者在开始使用etherpad时选择的内容。

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

第二作者

author-a-1z74zz83zuz82z2z67zz81zsz89zz750zz65z8z659zz87z9

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

提前致谢

1 个答案:

答案 0 :(得分:0)

因此,对于大多数以太网问题,没有人回答这个问题。我得到了解决方案,如果有人因为类名而决定文本颜色有同样的问题。

您只需要在使用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代码中进行的任何更改。