这是Web上RTE的常见问题之一。您能否指导我完成以下步骤:
我想直接在粘贴(paste_preprocess回调)上执行此操作,而无需打开粘贴插件提供的对话框。
有什么想法/经验吗?
谢谢,
这就是我要做的粘贴纯文本。
1. paste_preprocess设置(在tinymce init中)
paste_preprocess : function(pl, o) { //example: keep bold,italic,underline and paragraphs //o.content = strip_tags( o.content,'<b><u><i><p>' ); // remove all tags => plain text o.content = strip_tags( o.content,'' ); },
2.函数strip_tags(在主文档上)
// Strips HTML and PHP tags from a string // returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>' // example 2: strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>'); // returns 2: '<p>Kevin van Zonneveld</p>' // example 3: strip_tags("<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>", "<a>"); // returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>' // example 4: strip_tags('1 < 5 5 > 1'); // returns 4: '1 < 5 5 > 1' function strip_tags (str, allowed_tags) { var key = '', allowed = false; var matches = []; var allowed_array = []; var allowed_tag = ''; var i = 0; var k = ''; var html = ''; var replacer = function (search, replace, str) { return str.split(search).join(replace); }; // Build allowes tags associative array if (allowed_tags) { allowed_array = allowed_tags.match(/([a-zA-Z0-9]+)/gi); } str += ''; // Match tags matches = str.match(/(<\/?[\S][^>]*>)/gi); // Go through all HTML tags for (key in matches) { if (isNaN(key)) { // IE7 Hack continue; } // Save HTML tag html = matches[key].toString(); // Is tag not in allowed list? Remove from str! allowed = false; // Go through all allowed tags for (k in allowed_array) { // Init allowed_tag = allowed_array[k]; i = -1; if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');} if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');} if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag) ;} // Determine if (i == 0) { allowed = true; break; } } if (!allowed) { str = replacer(html, "", str); // Custom replace. No regexing } } return str; }