etherpad 如何识别作者颜色?
How etherpad recognizes author color?
所以我用谷歌搜索了它,但没有找到任何解决方案,所以我在这里发布我的问题。
因此,当您在 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 如何处理数据以将背景颜色放在特定文本上。
我知道它与给 span 的 类 有关:
author-a-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76z
第一作者
和
author-a-1z74zz83zuz82z2z67zz81zsz89zz750zz65z8z659zz87z9
第二作者
任何人都可以解释如何根据这些 类 名称为这些文本设置背景颜色吗?哪个文件负责?
提前致谢
正如大多数 etherpad 问题一样,也没有人回答这个问题。如果有人在根据 class 名称决定文本颜色时遇到同样的问题,我得到了解决方案。
您只需在使用 etherpad 的前端 js 文件中定义一个对象变量即可。在这个变量中,我们将作者 class 的名字作为键,其各自的颜色作为值。
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 代码中进行的任何更改。
所以我用谷歌搜索了它,但没有找到任何解决方案,所以我在这里发布我的问题。 因此,当您在 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 如何处理数据以将背景颜色放在特定文本上。
我知道它与给 span 的 类 有关:
author-a-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76z
第一作者
和
author-a-1z74zz83zuz82z2z67zz81zsz89zz750zz65z8z659zz87z9
第二作者
任何人都可以解释如何根据这些 类 名称为这些文本设置背景颜色吗?哪个文件负责?
提前致谢
正如大多数 etherpad 问题一样,也没有人回答这个问题。如果有人在根据 class 名称决定文本颜色时遇到同样的问题,我得到了解决方案。
您只需在使用 etherpad 的前端 js 文件中定义一个对象变量即可。在这个变量中,我们将作者 class 的名字作为键,其各自的颜色作为值。
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 代码中进行的任何更改。