1

バックスペースを押すときに選択範囲をラップしようとしています。これで、キーを押す部分はすでに機能していますが、選択範囲内にブロック要素がある場合も、選択範囲をスパン内でラップしようとしています。しかし、CKEDITOR 4では、ウォーカーは選択された部分だけではなく、完全な要素を取得することに気づきました。

http://docs.ckeditor.com/#!/api/CKEDITOR.dom.walkerのドキュメントには、そうでない場合は、要素を壊してブロック境界を表示すると書かれていますが、なぜ機能しないのですか?

これまでの私のコード:

var walker = new CKEDITOR.dom.walker( editor.getSelection().getRanges()[0] ), node;
walker.evaluator = function(node){
    node = "<span name='wasSelected'>" + node.getText()+ "</span>";
    return true;
};
walker.checkBackward();

注:これは、私が投稿した以前の質問に答える試みでした:CKEditorインライン選択ラッピング

その質問には今解決策がありますが、それでもAPIが言うことをしない理由を知りたいです。私は何か間違ったことをしていますか?

4

1 に答える 1

0

うーん...ドキュメントが間違っていると思います。チケットを作成しました。すぐに調査します:https ://dev.ckeditor.com/ticket/10261

とにかく、AFAIKウォーカーは含まれているノードのフラグメントに対してエバリュエーターを呼び出しません。入力されたすべてのノードでエバリュエーターを呼び出します。コード内のDOMを変更できるものは見つかりませんでした。

于 2013-03-25T17:33:49.667 に答える