ハイライトされたテキスト間の単語/文字スペースを変更する tinyMce プラグインを作成しています。私の fn() は次のようになります。
function wordsLettersSpace(words, letters) {
var inst = tinyMCE.activeEditor;
var currSelection = $.trim(inst.selection.getSel());
if(currSelection != ""){
var content = "";
content = inst.selection.getContent({
format: 'html'
});
contentReplace = '<span style="word-spacing: '+words+'px; letter-spacing: '+letters+'px;">' + inst.selection.getContent({
format: 'html'
}) + '</span>';
inst.selection.setContent(content.replace(content, contentReplace));
window.alert(content);
}else{
Hyphenator.hyphenate(inst.getBody(), language);
}
tinyMceUpdate();
}
ここで、開始位置を選択する前に最も近いタグを見つけ (存在する場合)、「word-spacing」と「letter-spacing」のスタイル値を取得する必要があります。また、選択範囲内を削除する必要がありますが、テキストではなくタグのみを削除する必要があります。スパンタグにはさまざまなスタイルを設定できるため、単純な str.replace は機能しません。
そのための組み込みプラグインがあることは知っていますが、tinyMce iframe の外でそれを行い、カスタマイズする必要があります。
何か提案はありますか?