CKeditor删除除div之外的所有html标记,粘贴事件上的span

时间:2013-12-04 07:37:55

标签: javascript php jquery ckeditor

当用户使用Ctrl + v粘贴内容时,我想从CKeditor中删除所有html标签。以下是我写的代码。不像我预期的那样工作。

<script type="text/javascript">
    CKEDITOR.on('instanceReady', function(ev) {
    var edits=ev.editor;
    edits.on( 'paste', function(event) {
        var content =  event.data['html'];
        content = $('<div />').html(content).text();
        var $temp=$(content).find('br,p').contents().unwrap().end().end();
        var newtext = $temp.text();
        edits.setData(newtext);
    });
    });
</script>

1)我希望删除除div,span之外的所有标签。但在我的代码中,我要指定要删除的标记。我敢肯定必须有更好的方法来做到这一点 2)此代码也删除了所有的html标签。所以代码肯定有问题

有更好的建议吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

function strip_tags(html, keepTags) {

    var ptn = new RegExp('<(?!\/?(' + keepTags.join('|') + '))[^>]+>', 'g');
    return html.replace(ptn, '');
}

$('')。html(content).text()将删除所有标签,所以只需使用strip_tags(content,['div','span']);

http://jsfiddle.net/rooseve/tqHLu/1/