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 回答