mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 15:45:55 +08:00
Improved cleanHtml()
This commit is contained in:
parent
185b4416a0
commit
eb22ddc4c3
|
@ -105,6 +105,11 @@ export const
|
||||||
'id', 'class', 'contenteditable', 'designmode', 'formaction', 'manifest', 'action',
|
'id', 'class', 'contenteditable', 'designmode', 'formaction', 'manifest', 'action',
|
||||||
'data-bind', 'data-reactid', 'xmlns', 'srcset',
|
'data-bind', 'data-reactid', 'xmlns', 'srcset',
|
||||||
'fscommand', 'seeksegmenttime'
|
'fscommand', 'seeksegmenttime'
|
||||||
|
],
|
||||||
|
disallowedTags = [
|
||||||
|
'HEAD','STYLE','SVG','SCRIPT','TITLE','LINK','BASE','META',
|
||||||
|
'INPUT','OUTPUT','SELECT','BUTTON','TEXTAREA',
|
||||||
|
'BGSOUND','KEYGEN','SOURCE','OBJECT','EMBED','APPLET','IFRAME','FRAME','FRAMESET','VIDEO','AUDIO','AREA','MAP'
|
||||||
];
|
];
|
||||||
|
|
||||||
tpl.innerHTML = html
|
tpl.innerHTML = html
|
||||||
|
@ -113,17 +118,11 @@ export const
|
||||||
})
|
})
|
||||||
// \MailSo\Base\HtmlUtils::ClearComments()
|
// \MailSo\Base\HtmlUtils::ClearComments()
|
||||||
.replace(/<!--[\s\S]*?-->/g, '')
|
.replace(/<!--[\s\S]*?-->/g, '')
|
||||||
// \MailSo\Base\HtmlUtils::ClearTags()
|
|
||||||
// eslint-disable-next-line max-len
|
|
||||||
.replace(/<\/?(link|form|input|output|select|button|textarea|center|base|meta|bgsound|keygen|source|object|embed|applet|mocha|i?frame|frameset|video|audio|area|map)(\s[\s\S]*?)?>/gi, '')
|
|
||||||
// GetDomFromText
|
// GetDomFromText
|
||||||
.replace('<o:p></o:p>', '')
|
.replace('<o:p></o:p>', '')
|
||||||
.replace('<o:p>', '<span>')
|
.replace('<o:p>', '<span>')
|
||||||
.replace('</o:p>', '</span>')
|
.replace('</o:p>', '</span>')
|
||||||
// https://github.com/the-djmaze/snappymail/issues/187
|
|
||||||
// .replace(/<a(?:\s[^>]*)?>((?![\s\S]*<\/a)[\s\S]*?<a(\s[^>]*)?>)/gi, '$1')
|
|
||||||
// \MailSo\Base\HtmlUtils::ClearFastTags
|
// \MailSo\Base\HtmlUtils::ClearFastTags
|
||||||
.replace(/<p[^>]*><\/p>/i, '')
|
|
||||||
.replace(/<!doctype[^>]*>/i, '')
|
.replace(/<!doctype[^>]*>/i, '')
|
||||||
.replace(/<\?xml [^>]*\?>/i, '')
|
.replace(/<\?xml [^>]*\?>/i, '')
|
||||||
.trim();
|
.trim();
|
||||||
|
@ -137,7 +136,8 @@ export const
|
||||||
setAttribute = (name, value) => oElement.setAttribute(name, value),
|
setAttribute = (name, value) => oElement.setAttribute(name, value),
|
||||||
delAttribute = name => oElement.removeAttribute(name);
|
delAttribute = name => oElement.removeAttribute(name);
|
||||||
|
|
||||||
if (['HEAD','STYLE','SVG','SCRIPT','TITLE','INPUT','BUTTON','TEXTAREA','SELECT'].includes(name)
|
// \MailSo\Base\HtmlUtils::ClearTags()
|
||||||
|
if (disallowedTags.includes(name)
|
||||||
|| 'none' == oStyle.display
|
|| 'none' == oStyle.display
|
||||||
|| 'hidden' == oStyle.visibility
|
|| 'hidden' == oStyle.visibility
|
||||||
// || (oStyle.lineHeight && 1 > parseFloat(oStyle.lineHeight)
|
// || (oStyle.lineHeight && 1 > parseFloat(oStyle.lineHeight)
|
||||||
|
@ -148,6 +148,11 @@ export const
|
||||||
oElement.remove();
|
oElement.remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// if (['CENTER','FORM'].includes(name)) {
|
||||||
|
if ('FORM' === name) {
|
||||||
|
replaceWithChildren(oElement);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ('BODY' === name) {
|
if ('BODY' === name) {
|
||||||
forEachObjectEntry(tasks, (name, cb) => {
|
forEachObjectEntry(tasks, (name, cb) => {
|
||||||
|
|
Loading…
Reference in a new issue