2

私のコード:

var cssApplier;
        window.onload = function () {
            rangy.init();
            cssApplier = rangy.createCssClassApplier("highlight", {
                ignoreWhiteSpace: true,
                elementTagName: "span",
                elementProperties: {
                    id: new Date()
                }
            })
        };    

しかし、私が電話するとき

cssApplier.applyToSelection();

常に同じ id プロパティでスパンをレンダリングします。id プロパティを動的に設定するにはどうすればよいですか?

4

1 に答える 1

3

new Date()を呼び出した時点で一度だけ評価されますrangy.createCssClassApplier()。作成された要素ごとに新しいを生成できる唯一の方法はid、Rangy が新しい要素を作成するたびにコールバックを指定する手段を提供した場合ですが、現在は提供されていません。ただし、これはとにかく追加することを検討しているものです。Rangy イシュー トラッカーにイシューを追加しました。

https://github.com/timdown/rangy/issues/143

アップデート

onElementCreateオプション オブジェクトを渡すことで、Rangy 1.3 でこれを実行できるようになりました。

var id = 0;
var applier = rangy.createApplier("someClass", {
    onElementCreate: function(el) {
        el.id = "rangySpan_" + (id++);
    }
});
于 2012-12-29T18:27:13.647 に答える