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-w3z75zz84z95z83zpz77zz89zz66zz79zxz90zz66zcz76zspan as: for first author に与えられたクラスと関係があることは知っています

author-a-1z74zz83zuz82z2z67zz81zsz89zz750zz65z8z659zz87z9第二著者向け。

これらのクラス名に応じて、これらのテキストの背景色がどのように設定されているかを誰かが説明できますか? そして、どのファイルがそれを担当していますか?

前もって感謝します

4

1 に答える 1

0

そのため、ほとんどの etherpad の質問と同様に、この質問にも誰も答えませんでした。クラス名に応じてテキストの色を決定するために誰かが同じ問題を抱えている場合、私は解決策を得ました。

必要なのは、etherpad を使用しているフロント エンドの js ファイルでオブジェクト変数を定義することだけです。この var では、作成者クラス名をキーとして、それぞれの色を値として取得します。

var window.authClassColorObj = {};

ファイルに移動してace2_inner.jsfunction を見つけsetAuthorStyle()、その関数の次の行に次の行を追加しますvar authorSelector = getAuthorColorClassSelector(getAuthorClassName(author));

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

今、私は 3 つのレイヤーでフロント エンド オブジェクト 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 に答える