v1.0
只读模式 group, 分享 评论更多问题 博客标签总是存在一个
This commit is contained in:
56
public/tinymce/classes/dom/Serializer.js
Normal file → Executable file
56
public/tinymce/classes/dom/Serializer.js
Normal file → Executable file
@ -51,6 +51,17 @@ define("tinymce/dom/Serializer", [
|
||||
|
||||
htmlParser = new DomParser(settings, schema);
|
||||
|
||||
// Convert tabindex back to elements when serializing contents
|
||||
htmlParser.addAttributeFilter('data-mce-tabindex', function(nodes, name) {
|
||||
var i = nodes.length, node;
|
||||
|
||||
while (i--) {
|
||||
node = nodes[i];
|
||||
node.attr('tabindex', node.attributes.map['data-mce-tabindex']);
|
||||
node.attr(name, null);
|
||||
}
|
||||
});
|
||||
|
||||
// Convert move data-mce-src, data-mce-href and data-mce-style into nodes or process them if needed
|
||||
htmlParser.addAttributeFilter('src,href,style', function(nodes, name) {
|
||||
var i = nodes.length, node, value, internalName = 'data-mce-' + name;
|
||||
@ -85,8 +96,12 @@ define("tinymce/dom/Serializer", [
|
||||
|
||||
while (i--) {
|
||||
node = nodes[i];
|
||||
value = node.attr('class').replace(/(?:^|\s)mce-item-\w+(?!\S)/g, '');
|
||||
node.attr('class', value.length > 0 ? value : null);
|
||||
value = node.attr('class');
|
||||
|
||||
if (value) {
|
||||
value = node.attr('class').replace(/(?:^|\s)mce-item-\w+(?!\S)/g, '');
|
||||
node.attr('class', value.length > 0 ? value : null);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -103,15 +118,6 @@ define("tinymce/dom/Serializer", [
|
||||
}
|
||||
});
|
||||
|
||||
// Remove expando attributes
|
||||
htmlParser.addAttributeFilter('data-mce-expando', function(nodes, name) {
|
||||
var i = nodes.length;
|
||||
|
||||
while (i--) {
|
||||
nodes[i].attr(name, null);
|
||||
}
|
||||
});
|
||||
|
||||
htmlParser.addNodeFilter('noscript', function(nodes) {
|
||||
var i = nodes.length, node;
|
||||
|
||||
@ -126,10 +132,11 @@ define("tinymce/dom/Serializer", [
|
||||
|
||||
// Force script into CDATA sections and remove the mce- prefix also add comments around styles
|
||||
htmlParser.addNodeFilter('script,style', function(nodes, name) {
|
||||
var i = nodes.length, node, value;
|
||||
var i = nodes.length, node, value, type;
|
||||
|
||||
function trim(value) {
|
||||
/*jshint maxlen:255 */
|
||||
/*eslint max-len:0 */
|
||||
return value.replace(/(<!--\[CDATA\[|\]\]-->)/g, '\n')
|
||||
.replace(/^[\r\n]*|[\r\n]*$/g, '')
|
||||
.replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, '')
|
||||
@ -141,9 +148,12 @@ define("tinymce/dom/Serializer", [
|
||||
value = node.firstChild ? node.firstChild.value : '';
|
||||
|
||||
if (name === "script") {
|
||||
// Remove mce- prefix from script elements and remove default text/javascript mime type (HTML5)
|
||||
var type = (node.attr('type') || 'text/javascript').replace(/^mce\-/, '');
|
||||
node.attr('type', type === 'text/javascript' ? null : type);
|
||||
// Remove mce- prefix from script elements and remove default type since the user specified
|
||||
// a script element without type attribute
|
||||
type = node.attr('type');
|
||||
if (type) {
|
||||
node.attr('type', type == 'mce-no/type' ? null : type.replace(/^mce\-/, ''));
|
||||
}
|
||||
|
||||
if (value.length > 0) {
|
||||
node.firstChild.value = '// <![CDATA[\n' + trim(value) + '\n// ]]>';
|
||||
@ -210,13 +220,19 @@ define("tinymce/dom/Serializer", [
|
||||
}
|
||||
|
||||
// Remove internal data attributes
|
||||
htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,data-mce-selected', function(nodes, name) {
|
||||
var i = nodes.length;
|
||||
htmlParser.addAttributeFilter(
|
||||
'data-mce-src,data-mce-href,data-mce-style,' +
|
||||
'data-mce-selected,data-mce-expando,' +
|
||||
'data-mce-type,data-mce-resize',
|
||||
|
||||
while (i--) {
|
||||
nodes[i].attr(name, null);
|
||||
function(nodes, name) {
|
||||
var i = nodes.length;
|
||||
|
||||
while (i--) {
|
||||
nodes[i].attr(name, null);
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
// Return public methods
|
||||
return {
|
||||
|
Reference in New Issue
Block a user