eslint it
parent
997f1ac978
commit
a3e0d66939
131
htmLawed.js
131
htmLawed.js
|
@ -1,6 +1,6 @@
|
||||||
// JS rewrite of http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/
|
// JS rewrite of http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/
|
||||||
|
|
||||||
htmLawed = {
|
var htmLawed = {
|
||||||
_flip: function(a)
|
_flip: function(a)
|
||||||
{
|
{
|
||||||
var e = {};
|
var e = {};
|
||||||
|
@ -51,15 +51,16 @@ htmLawed = {
|
||||||
delete e.script;
|
delete e.script;
|
||||||
}
|
}
|
||||||
var x = C.elements ? C.elements.replace(/\s+/g, '') : '*';
|
var x = C.elements ? C.elements.replace(/\s+/g, '') : '*';
|
||||||
|
var v, m, i;
|
||||||
if (x == '-*')
|
if (x == '-*')
|
||||||
e = {};
|
e = {};
|
||||||
else if (x.indexOf('*') < 0)
|
else if (x.indexOf('*') < 0)
|
||||||
e = htmLawed._flip(e.split(/,/));
|
e = htmLawed._flip(e.split(/,/));
|
||||||
else if (x.length > 1)
|
else if (x.length > 1)
|
||||||
{
|
{
|
||||||
var re = /(?:^|-|\+)[^\-+]+?(?=-|\+|$)/g, v;
|
var re = /(?:^|-|\+)[^\-+]+?(?=-|\+|$)/g;
|
||||||
var m = {};
|
m = {};
|
||||||
while (v = re.exec(x))
|
while ((v = re.exec(x)))
|
||||||
m[v[0]] = true;
|
m[v[0]] = true;
|
||||||
for (v in m)
|
for (v in m)
|
||||||
{
|
{
|
||||||
|
@ -76,16 +77,16 @@ htmLawed = {
|
||||||
if (x['on*'])
|
if (x['on*'])
|
||||||
{
|
{
|
||||||
delete x['on*'];
|
delete x['on*'];
|
||||||
var v = { 'onblur':1, 'onchange':1, 'onclick':1, 'ondblclick':1, 'onfocus':1, 'onkeydown':1, 'onkeypress':1, 'onkeyup':1, 'onmousedown':1, 'onmousemove':1, 'onmouseout':1, 'onmouseover':1, 'onmouseup':1, 'onreset':1, 'onselect':1, 'onsubmit':1 };
|
v = { 'onblur':1, 'onchange':1, 'onclick':1, 'ondblclick':1, 'onfocus':1, 'onkeydown':1, 'onkeypress':1, 'onkeyup':1, 'onmousedown':1, 'onmousemove':1, 'onmouseout':1, 'onmouseover':1, 'onmouseup':1, 'onreset':1, 'onselect':1, 'onsubmit':1 };
|
||||||
for (var i in v)
|
for (i in v)
|
||||||
x[i] = true;
|
x[i] = true;
|
||||||
}
|
}
|
||||||
C.deny_attribute = x;
|
C.deny_attribute = x;
|
||||||
// config URL
|
// config URL
|
||||||
x = C.schemes && C.schemes.length > 2 && C.schemes.indexOf(':') > 0 ? C.schemes.toLowerCase() : 'href: aim, feed, file, ftp, gopher, http, https, irc, mailto, news, nntp, sftp, ssh, telnet; *:file, http, https';
|
x = C.schemes && C.schemes.length > 2 && C.schemes.indexOf(':') > 0 ? C.schemes.toLowerCase() : 'href: aim, feed, file, ftp, gopher, http, https, irc, mailto, news, nntp, sftp, ssh, telnet; *:file, http, https';
|
||||||
C.schemes = {};
|
C.schemes = {};
|
||||||
var m = x.replace(/\s+/g, '').split(';');
|
m = x.replace(/\s+/g, '').split(';');
|
||||||
for (var v in m)
|
for (v in m)
|
||||||
{
|
{
|
||||||
x = v.split(':', 2);
|
x = v.split(':', 2);
|
||||||
if (x[1])
|
if (x[1])
|
||||||
|
@ -140,12 +141,12 @@ htmLawed = {
|
||||||
y = { "\x82":'‚', "\x84":'„', "\x91":'‘', "\x92":'’', "\x93":'“', "\x94":'”' };
|
y = { "\x82":'‚', "\x84":'„', "\x91":'‘', "\x92":'’', "\x93":'“', "\x94":'”' };
|
||||||
else
|
else
|
||||||
y = { "\x82":'\'', "\x84":'"', "\x91":'\'', "\x92":'\'', "\x93":'"', "\x94":'"' };
|
y = { "\x82":'\'', "\x84":'"', "\x91":'\'', "\x92":'\'', "\x93":'"', "\x94":'"' };
|
||||||
for (var i in y)
|
for (i in y)
|
||||||
x[i] = y[i];
|
x[i] = y[i];
|
||||||
t = htmLawed._strtr(t, x);
|
t = htmLawed._strtr(t, x);
|
||||||
}
|
}
|
||||||
if (C.cdata || C.comment)
|
if (C.cdata || C.comment)
|
||||||
t = t.replace(/<!(?:(?:--.*?--)|(?:\[CDATA\[.*?\]\]))>/g, htmLawed.hl_cmtcd)
|
t = t.replace(/<!(?:(?:--.*?--)|(?:\[CDATA\[.*?\]\]))>/g, htmLawed.hl_cmtcd);
|
||||||
t = t.replace(/&/g, '&').replace(/&([A-Za-z][A-Za-z0-9]{1,30}|#(?:[0-9]{1,8}|[Xx][0-9A-Fa-f]{1,7}));/g, htmLawed.hl_ent);
|
t = t.replace(/&/g, '&').replace(/&([A-Za-z][A-Za-z0-9]{1,30}|#(?:[0-9]{1,8}|[Xx][0-9A-Fa-f]{1,7}));/g, htmLawed.hl_ent);
|
||||||
if (C.unique_ids && !htmLawed.hl_Ids)
|
if (C.unique_ids && !htmLawed.hl_Ids)
|
||||||
htmLawed.hl_Ids = {};
|
htmLawed.hl_Ids = {};
|
||||||
|
@ -180,22 +181,22 @@ htmLawed = {
|
||||||
var v = p[k];
|
var v = p[k];
|
||||||
switch (k)
|
switch (k)
|
||||||
{
|
{
|
||||||
case 'maxlen': if(l > v){o = 0;} break;
|
case 'maxlen': if(l > v){o = 0;} break;
|
||||||
case 'minlen': if(l < v){o = 0;} break;
|
case 'minlen': if(l < v){o = 0;} break;
|
||||||
case 'maxval': if(parseFloat(tv) > v){o = 0;} break;
|
case 'maxval': if(parseFloat(tv) > v){o = 0;} break;
|
||||||
case 'minval': if(parseFloat(tv) < v){o = 0;} break;
|
case 'minval': if(parseFloat(tv) < v){o = 0;} break;
|
||||||
case 'match': if(!v.exec(tv)){o = 0;} break;
|
case 'match': if(!v.exec(tv)){o = 0;} break;
|
||||||
case 'nomatch': if(v.exec(tv)){o = 0;} break;
|
case 'nomatch': if(v.exec(tv)){o = 0;} break;
|
||||||
case 'oneof':
|
case 'oneof':
|
||||||
v = v.split('|');
|
v = v.split('|');
|
||||||
for (i = 0; i < v.length && v[i] != tv; i++) {}
|
for (i = 0; i < v.length && v[i] != tv; i++) {}
|
||||||
m = (i < v.length);
|
o = (i < v.length);
|
||||||
break;
|
break;
|
||||||
case 'noneof':
|
case 'noneof':
|
||||||
v = v.split('|');
|
v = v.split('|');
|
||||||
for (i = 0; i < v.length && v[i] != tv; i++) {}
|
for (i = 0; i < v.length && v[i] != tv; i++) {}
|
||||||
m = (i < v.length);
|
o = (i >= v.length);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!o)
|
if (!o)
|
||||||
break;
|
break;
|
||||||
|
@ -271,7 +272,7 @@ htmLawed = {
|
||||||
if (cont.E[intag])
|
if (cont.E[intag])
|
||||||
return (!perf ? '' : htmLawed.replace(/</g, '<').replace(/>/g, '>'));
|
return (!perf ? '' : htmLawed.replace(/</g, '<').replace(/>/g, '>'));
|
||||||
var inOk = getCont(intag);
|
var inOk = getCont(intag);
|
||||||
var ok = [], q = []; // q = seq list of open non-empty ele
|
var ok = [], q = [], ql; // q = seq list of open non-empty ele
|
||||||
var _ob = '';
|
var _ob = '';
|
||||||
var r, s, e, a, x, p;
|
var r, s, e, a, x, p;
|
||||||
t = t.split('<');
|
t = t.split('<');
|
||||||
|
@ -283,7 +284,7 @@ htmLawed = {
|
||||||
x = t[i];
|
x = t[i];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
[ all, s, e, a, x ] = r; // FIXME ES6
|
[ , s, e, a, x ] = r; // FIXME ES6
|
||||||
// close tag
|
// close tag
|
||||||
if (s)
|
if (s)
|
||||||
{
|
{
|
||||||
|
@ -329,7 +330,7 @@ htmLawed = {
|
||||||
e = x = null;
|
e = x = null;
|
||||||
}
|
}
|
||||||
// if no open ele, intag = parent; mostly immediate parent-child relation should hold
|
// if no open ele, intag = parent; mostly immediate parent-child relation should hold
|
||||||
else if (!ql || !el.N[e] || !q.filter(_k => cont.N[k]).length)
|
else if (!ql || !el.N[e] || !q.filter(_k => cont.N[_k]).length)
|
||||||
{
|
{
|
||||||
if (!ok[e])
|
if (!ok[e])
|
||||||
{
|
{
|
||||||
|
@ -359,12 +360,12 @@ htmLawed = {
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// nesting
|
// nesting
|
||||||
var add = '';
|
add = '';
|
||||||
var q2 = [];
|
var q2 = [];
|
||||||
var _stop = 0;
|
var _stop = 0;
|
||||||
for (var k = 0, kc = q.length; k < kc; k++)
|
for (var k = 0, kc = q.length; k < kc; k++)
|
||||||
{
|
{
|
||||||
var d = q[k];
|
d = q[k];
|
||||||
var ok2 = [];
|
var ok2 = [];
|
||||||
if (cont.S[d])
|
if (cont.S[d])
|
||||||
{
|
{
|
||||||
|
@ -439,7 +440,7 @@ htmLawed = {
|
||||||
}
|
}
|
||||||
|
|
||||||
// end
|
// end
|
||||||
while (e = q.pop())
|
while ((e = q.pop()))
|
||||||
_ob += '</'+e+'>';
|
_ob += '</'+e+'>';
|
||||||
return _ob;
|
return _ob;
|
||||||
// eof
|
// eof
|
||||||
|
@ -474,7 +475,7 @@ htmLawed = {
|
||||||
t = t[1];
|
t = t[1];
|
||||||
if (t[0] != '#')
|
if (t[0] != '#')
|
||||||
{
|
{
|
||||||
return (C.and_mark ? "\x06" : '&')+(htmLawed.ENT_U[t] ? t : (htmLawed.ENT[$t]
|
return (C.and_mark ? "\x06" : '&')+(htmLawed.ENT_U[t] ? t : (htmLawed.ENT[t]
|
||||||
? (!C.named_entity ? '#'+(C.hexdec_entity > 1 ? 'x'+parseInt(htmLawed.ENT[t]).toString(16) : htmLawed.ENT[t]) : t)
|
? (!C.named_entity ? '#'+(C.hexdec_entity > 1 ? 'x'+parseInt(htmLawed.ENT[t]).toString(16) : htmLawed.ENT[t]) : t)
|
||||||
: 'amp;'+t))+';';
|
: 'amp;'+t))+';';
|
||||||
}
|
}
|
||||||
|
@ -483,7 +484,7 @@ htmLawed = {
|
||||||
if (n < 9 || (n > 13 && n < 32) || n == 11 || n == 12 || (n > 126 && n < 160 && n != 133) ||
|
if (n < 9 || (n > 13 && n < 32) || n == 11 || n == 12 || (n > 126 && n < 160 && n != 133) ||
|
||||||
(n > 55295 && (n < 57344 || (n > 64975 && n < 64992) || n == 65534 || n == 65535 || n > 1114111)))
|
(n > 55295 && (n < 57344 || (n > 64975 && n < 64992) || n == 65534 || n == 65535 || n > 1114111)))
|
||||||
{
|
{
|
||||||
return (C.and_mark ? "\x06" : '&')+"amp;#{$t};";
|
return (C.and_mark ? "\x06" : '&')+"amp;#"+t+";";
|
||||||
}
|
}
|
||||||
return (C.and_mark ? "\x06" : '&')+'#'+(((/^\d+$/.exec(t) && C.hexdec_entity < 2) || !C.hexdec_entity) ? n : 'x'+n.toString(16))+';';
|
return (C.and_mark ? "\x06" : '&')+'#'+(((/^\d+$/.exec(t) && C.hexdec_entity < 2) || !C.hexdec_entity) ? n : 'x'+n.toString(16))+';';
|
||||||
// eof
|
// eof
|
||||||
|
@ -505,7 +506,7 @@ htmLawed = {
|
||||||
if (c['!'] && p.substr(0, 7) != d)
|
if (c['!'] && p.substr(0, 7) != d)
|
||||||
p = d+p;
|
p = d+p;
|
||||||
if (c['*'] || /^[#;?]/.exec(p) || p.substr(0, 7) == d)
|
if (c['*'] || /^[#;?]/.exec(p) || p.substr(0, 7) == d)
|
||||||
return b+o+a; // All ok, frag, query, param
|
return b+p+a; // All ok, frag, query, param
|
||||||
var m = /^([^:?[@!$()*,=\/\'\]]+?)(:|&#(58|x3a);|%3a|\\\\0{0,4}3a)./i.exec(p); // '
|
var m = /^([^:?[@!$()*,=\/\'\]]+?)(:|&#(58|x3a);|%3a|\\\\0{0,4}3a)./i.exec(p); // '
|
||||||
if (m && !c[m[1].toLowerCase()]) // Denied prot
|
if (m && !c[m[1].toLowerCase()]) // Denied prot
|
||||||
return b+d+p+a;
|
return b+d+p+a;
|
||||||
|
@ -527,10 +528,10 @@ htmLawed = {
|
||||||
p = C.base_url+p;
|
p = C.base_url+p;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var m = /^([a-zA-Z\d\-+.]+:\/\/[^\/]+)(.*)/.exec(C.base_url);
|
m = /^([a-zA-Z\d\-+.]+:\/\/[^\/]+)(.*)/.exec(C.base_url);
|
||||||
p = (m[2]+p).replace(/(?<=\/)\.\//g, '');
|
p = (m[2]+p).replace(/\/\.\//g, '/');
|
||||||
while (/(?<=\/)([^\/]{3,}|[^\/.]+?|\.[^\/.]|[^\/.]\.)\/\.\.\//.exec(p))
|
while (/\/([^\/]{3,}|[^\/.]+?|\.[^\/.]|[^\/.]\.)\/\.\.\//.exec(p))
|
||||||
p = p.replace(/(?<=\/)([^\/]{3,}|[^\/.]+?|\.[^\/.]|[^\/.]\.)\/\.\.\//g, '');
|
p = p.replace(/\/([^\/]{3,}|[^\/.]+?|\.[^\/.]|[^\/.]\.)\/\.\.\//g, '/');
|
||||||
p = m[1]+p;
|
p = m[1]+p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -543,7 +544,7 @@ htmLawed = {
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var re = new RegExp(p);
|
var re = new RegExp(p);
|
||||||
return true;
|
return re && true;
|
||||||
}
|
}
|
||||||
catch (e)
|
catch (e)
|
||||||
{
|
{
|
||||||
|
@ -554,24 +555,24 @@ htmLawed = {
|
||||||
{
|
{
|
||||||
// final $spec
|
// final $spec
|
||||||
var s = {};
|
var s = {};
|
||||||
t = t.trim().replace(/"(?>(`.|[^\"])*)"/g, function(m)
|
t = t.trim().replace(/"(`.|[^\"])*"/g, function(m)
|
||||||
{
|
{
|
||||||
m = htmLawed._strtr(m[0], {';': "\x01", '|':"\x02", '~':"\x03", ' ':"\x04", ',':"\x05", '/':"\x06", '(':"\x07", ')':"\x08", '`"':'"'});
|
m = htmLawed._strtr(m[0], {';': "\x01", '|':"\x02", '~':"\x03", ' ':"\x04", ',':"\x05", '/':"\x06", '(':"\x07", ')':"\x08", '`"':'"'});
|
||||||
return m.substr(1, m.length-2);
|
return m.substr(1, m.length-2);
|
||||||
}).replace(/\s+/g, '');
|
}).replace(/\s+/g, '');
|
||||||
t = t.split(/;/);
|
t = t.split(/;/);
|
||||||
var e, a;
|
var e, a, _i;
|
||||||
for (var i = t.length-1; i >= 0; i--)
|
for (var i = t.length-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
var w = t[i];
|
var w = t[i];
|
||||||
if (!w || (e = w.indexOf('=')) < 0 || (a = w.substr(e+1)) === '')
|
if (!w || (e = w.indexOf('=')) < 0 || (a = w.substr(e+1)) === '')
|
||||||
continue;
|
continue;
|
||||||
var y = {}, n = {};
|
var x, y = {}, n = {}, p, v, m;
|
||||||
a = a.split(',');
|
a = a.split(',');
|
||||||
for (var _i = 0; _i < a.length; _i++)
|
for (_i = 0; _i < a.length; _i++)
|
||||||
{
|
{
|
||||||
var v = a[_i];
|
v = a[_i];
|
||||||
var m = /^([a-z:\-\*]+)(?:\((.*?)\))?/i.exec(v);
|
m = /^([a-z:\-\*]+)(?:\((.*?)\))?/i.exec(v);
|
||||||
if (!m)
|
if (!m)
|
||||||
continue;
|
continue;
|
||||||
if (m[1] === '-*')
|
if (m[1] === '-*')
|
||||||
|
@ -606,13 +607,13 @@ htmLawed = {
|
||||||
delete y[x].nomatch;
|
delete y[x].nomatch;
|
||||||
}
|
}
|
||||||
var _y = 0;
|
var _y = 0;
|
||||||
for (var _i in y)
|
for (_i in y)
|
||||||
{
|
{
|
||||||
_y = 1;
|
_y = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var _n = 0;
|
var _n = 0;
|
||||||
for (var _i in n)
|
for (_i in n)
|
||||||
{
|
{
|
||||||
_n = 1;
|
_n = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -620,9 +621,9 @@ htmLawed = {
|
||||||
if (!_y && !_n)
|
if (!_y && !_n)
|
||||||
continue;
|
continue;
|
||||||
w = w.substr(0, e);
|
w = w.substr(0, e);
|
||||||
for (var _i = 0; _i < w.length; _i++)
|
for (_i = 0; _i < w.length; _i++)
|
||||||
{
|
{
|
||||||
var v = w[_i].toLowerCase();
|
v = w[_i].toLowerCase();
|
||||||
if (v === '')
|
if (v === '')
|
||||||
continue;
|
continue;
|
||||||
if (_y)
|
if (_y)
|
||||||
|
@ -837,7 +838,7 @@ htmLawed = {
|
||||||
'R':'r', 'R':'r', 'r':'r', 'r':'r',
|
'R':'r', 'R':'r', 'r':'r', 'r':'r',
|
||||||
'L':'l', 'L':'l', 'l':'l', 'l':'l',
|
'L':'l', 'L':'l', 'l':'l', 'l':'l',
|
||||||
'(':'(', '(':'(', ')':')', ')':')',
|
'(':'(', '(':'(', ')':')', ')':')',
|
||||||
' ':':', ' ':':', '"':'"', '"':'"',
|
':':':', ':':':', '"':'"', '"':'"',
|
||||||
''':"'", ''':"'", '/':'/', '/':'/',
|
''':"'", ''':"'", '/':'/', '/':'/',
|
||||||
'*':'*', '*':'*', '\':'\\', '\':'\\'
|
'*':'*', '*':'*', '\':'\\', '\':'\\'
|
||||||
},
|
},
|
||||||
|
@ -951,16 +952,17 @@ htmLawed = {
|
||||||
// clean attrs
|
// clean attrs
|
||||||
var rl = S[e] || {};
|
var rl = S[e] || {};
|
||||||
a = {};
|
a = {};
|
||||||
nfr = 0;
|
var nfr = 0;
|
||||||
for (var k in aA)
|
var k, v;
|
||||||
|
for (k in aA)
|
||||||
{
|
{
|
||||||
var v = aA[k];
|
v = aA[k];
|
||||||
if (((C.deny_attribute['*'] ? C.deny_attribute[k] : !C.deny_attribute[k]) &&
|
if (((C.deny_attribute['*'] ? C.deny_attribute[k] : !C.deny_attribute[k]) &&
|
||||||
(TAG.N[k] && TAG.N[k][e] || (TAG.NU[k] && !TAG.NU[k][e])) &&
|
(TAG.N[k] && TAG.N[k][e] || (TAG.NU[k] && !TAG.NU[k][e])) &&
|
||||||
(!rl.n || !rl.n[k] && !rl.n['*'])) || rl[k])
|
(!rl.n || !rl.n[k] && !rl.n['*'])) || rl[k])
|
||||||
{
|
{
|
||||||
if (TAG.NE[k])
|
if (TAG.NE[k])
|
||||||
y = k;
|
v = k;
|
||||||
else if (lcase && ((e != 'button' || e != 'input') || k == 'type'))
|
else if (lcase && ((e != 'button' || e != 'input') || k == 'type'))
|
||||||
{
|
{
|
||||||
// Rather loose but ?not cause issues
|
// Rather loose but ?not cause issues
|
||||||
|
@ -1019,7 +1021,7 @@ htmLawed = {
|
||||||
// rqd attr
|
// rqd attr
|
||||||
if (TAG.AR[e])
|
if (TAG.AR[e])
|
||||||
{
|
{
|
||||||
for (var k in TAG.AR[e])
|
for (k in TAG.AR[e])
|
||||||
if (!a[k])
|
if (!a[k])
|
||||||
a[k] = TAG.AR[e][k] || k;
|
a[k] = TAG.AR[e][k] || k;
|
||||||
}
|
}
|
||||||
|
@ -1028,16 +1030,16 @@ htmLawed = {
|
||||||
if (depTr)
|
if (depTr)
|
||||||
{
|
{
|
||||||
var c = [];
|
var c = [];
|
||||||
for (var k in a)
|
for (k in a)
|
||||||
{
|
{
|
||||||
var v = a[k];
|
v = a[k];
|
||||||
if (k == 'style' || !TAG.ND[k] || !TAG.ND[k][e])
|
if (k == 'style' || !TAG.ND[k] || !TAG.ND[k][e])
|
||||||
continue;
|
continue;
|
||||||
if (k == 'align')
|
if (k == 'align')
|
||||||
{
|
{
|
||||||
delete a[k];
|
delete a[k];
|
||||||
if (e == 'img' && (v == 'left' || v == 'right'))
|
if (e == 'img' && (v == 'left' || v == 'right'))
|
||||||
c.push('float: '+$v);
|
c.push('float: '+v);
|
||||||
else if ((e == 'div' || e == 'table') && v == 'center')
|
else if ((e == 'div' || e == 'table') && v == 'center')
|
||||||
c.push('margin: auto');
|
c.push('margin: auto');
|
||||||
else
|
else
|
||||||
|
@ -1127,8 +1129,8 @@ htmLawed = {
|
||||||
if (!C.hook_tag)
|
if (!C.hook_tag)
|
||||||
{
|
{
|
||||||
aA = '';
|
aA = '';
|
||||||
for (var k in a)
|
for (k in a)
|
||||||
aA += ' '+k+'="'+v+'"';
|
aA += ' '+k+'="'+a[k]+'"';
|
||||||
return '<'+e+aA+(TAG.E[e] ? ' /' : '')+'>';
|
return '<'+e+aA+(TAG.E[e] ? ' /' : '')+'>';
|
||||||
}
|
}
|
||||||
return C.hook_tag(e, a);
|
return C.hook_tag(e, a);
|
||||||
|
@ -1150,6 +1152,7 @@ htmLawed = {
|
||||||
else if (e == 'font')
|
else if (e == 'font')
|
||||||
{
|
{
|
||||||
var a2 = '';
|
var a2 = '';
|
||||||
|
var m;
|
||||||
while ((m = /(^|\s)(color|size)\s*=\s*('|")?(.+?)(\3|\s|$)/i.exec(a))) // '
|
while ((m = /(^|\s)(color|size)\s*=\s*('|")?(.+?)(\3|\s|$)/i.exec(a))) // '
|
||||||
{
|
{
|
||||||
a = a.replace(m[0], ' ');
|
a = a.replace(m[0], ' ');
|
||||||
|
@ -1272,7 +1275,11 @@ htmLawed = {
|
||||||
t = t.replace(/\n/g, l);
|
t = t.replace(/\n/g, l);
|
||||||
return htmLawed._strtr(t, {"\x01":'<', "\x02":'>', "\x03":"\n", "\x04":"\r", "\x05":"\t", "\x07":' '});
|
return htmLawed._strtr(t, {"\x01":'<', "\x02":'>', "\x03":"\n", "\x04":"\r", "\x05":"\t", "\x07":' '});
|
||||||
// eof
|
// eof
|
||||||
|
},
|
||||||
|
hl_version: function()
|
||||||
|
{
|
||||||
|
return '1.1.22';
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
console.log(htmLawed.sanitize('<a href="javascript:alert()">aahah</a>'));
|
console.log(htmLawed.sanitize('<a href="javascript:alert()">aahah</a>'));
|
||||||
|
|
Loading…
Reference in New Issue