1

ハイライトされたテキスト間の単語/文字スペースを変更する 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 の外でそれを行い、カスタマイズする必要があります。

何か提案はありますか?

4

1 に答える 1

3

JS 正規表現が利用可能で、preg_match で必要なことを正確に実行します。

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

JavaScriptの部分文字列はstr.substr(start, length)

于 2013-03-29T13:59:33.550 に答える