index.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * xss
  3. *
  4. * @author Zongmin Lei<leizongmin@gmail.com>
  5. */
  6. var DEFAULT = require("./default");
  7. var parser = require("./parser");
  8. var FilterXSS = require("./xss");
  9. /**
  10. * filter xss function
  11. *
  12. * @param {String} html
  13. * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }
  14. * @return {String}
  15. */
  16. function filterXSS(html, options) {
  17. var xss = new FilterXSS(options);
  18. return xss.process(html);
  19. }
  20. exports = module.exports = filterXSS;
  21. exports.filterXSS = filterXSS;
  22. exports.FilterXSS = FilterXSS;
  23. (function () {
  24. for (var i in DEFAULT) {
  25. exports[i] = DEFAULT[i];
  26. }
  27. for (var j in parser) {
  28. exports[j] = parser[j];
  29. }
  30. })();
  31. // using `xss` on the browser, output `filterXSS` to the globals
  32. if (typeof window !== "undefined") {
  33. window.filterXSS = module.exports;
  34. }
  35. // using `xss` on the WebWorker, output `filterXSS` to the globals
  36. function isWorkerEnv() {
  37. return (
  38. typeof self !== "undefined" &&
  39. typeof DedicatedWorkerGlobalScope !== "undefined" &&
  40. self instanceof DedicatedWorkerGlobalScope
  41. );
  42. }
  43. if (isWorkerEnv()) {
  44. self.filterXSS = module.exports;
  45. }