2016-11-21 60 views
0

所以我GOOGLE了它,我沒有找到任何解決方案,所以我在這裏發佈我的問題。 所以,當你在EtherPad的編寫,它會創建的標記,看起來像這樣: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時。

我的問題是etherpad如何處理數據以將特定文本的背景顏色。 我知道它是與給定爲跨類: author-a-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76z爲第一作者

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

任何人都可以解釋如何根據這些類名稱爲這些文本放置背景顏色嗎?和哪個文件負責?

預先感謝

回答

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代碼中進行任何更改。