index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. for (var i in DEFAULT) exports[i] = DEFAULT[i];
  24. for (var i in parser) exports[i] = parser[i];
  25. // using `xss` on the browser, output `filterXSS` to the globals
  26. if (typeof window !== "undefined") {
  27. window.filterXSS = module.exports;
  28. }
  29. // using `xss` on the WebWorker, output `filterXSS` to the globals
  30. function isWorkerEnv() {
  31. return (
  32. typeof self !== "undefined" &&
  33. typeof DedicatedWorkerGlobalScope !== "undefined" &&
  34. self instanceof DedicatedWorkerGlobalScope
  35. );
  36. }
  37. if (isWorkerEnv()) {
  38. self.filterXSS = module.exports;
  39. }