mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 21:00:01 +08:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
/// <reference path="sanitizer.d.ts" />
|
|
|
|
import sanitizer = require('sanitizer');
|
|
|
|
// example copied from the tests https://github.com/theSmaw/Caja-HTML-Sanitizer/blob/master/test/test-sanitizer.js#L346
|
|
var events:any[] = [];
|
|
var addTextEvent = function(type:string, text:string, param:any) {
|
|
var n = events.length;
|
|
|
|
if (events[n - 3] === type && events[n - 1] === param) {
|
|
events[n - 2] += text;
|
|
} else {
|
|
events.push(type, text, param);
|
|
}
|
|
};
|
|
|
|
sanitizer.makeSaxParser({
|
|
startTag: function(name, attribs, param) {
|
|
events.push('startTag', name + '[' + attribs.join(';') + ']', param);
|
|
},
|
|
|
|
endTag: function(name, param) {
|
|
events.push('endTag', name, param);
|
|
},
|
|
|
|
pcdata: function(text, param) {
|
|
addTextEvent('pcdata', text, param);
|
|
},
|
|
|
|
cdata: function(text, param) {
|
|
addTextEvent('cdata', text, param);
|
|
},
|
|
|
|
rcdata: function(text, param) {
|
|
addTextEvent('rcdata', text, param);
|
|
},
|
|
|
|
comment: function(text, param) {
|
|
events.push('comment', text, param);
|
|
},
|
|
|
|
startDoc: function(param) {
|
|
events.push('startDoc', '', param);
|
|
},
|
|
|
|
endDoc: function(param) {
|
|
events.push('endDoc', '', param);
|
|
}
|
|
});
|
|
sanitizer.escape('<script>alert("hi")</script>');
|
|
sanitizer.sanitize('<script>alert("hi")</script>');
|
|
sanitizer.normalizeRCData('<script>alert("hi")</script>');
|
|
sanitizer.unescapeEntities('<script>alert("hi")</script>');
|