javascript - CKeditor 在粘贴事件时删除除 div、span 之外的所有 html 标签

标签 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 标签。所以代码肯定有问题

还有什么更好的建议吗?

最佳答案

试试这个:

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/

关于javascript - CKeditor 在粘贴事件时删除除 div、span 之外的所有 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20369665/

相关文章:

javascript - AngularJS 表单自定义验证( future 日期)

php - PDO 语句中的变体字符在 IE9 中不起作用

javascript - 关于将元素保存到 DOM 和选项卡的 jQuery 问题

jquery - 如何让元素在父悬停时显示?

javascript - jQuery scrollTop 到容器 div 的顶部

javascript - 我在 jQuery 中使用什么正则表达式来验证不区分大小写?

javascript - JS : adding text to text area issue

php - 用户已存在 Echo - 注册并登录

php - 我应该如何在 PHP 中实现延迟 session 创建?

javascript - 如何用jQuery读取文本区域的内容?