Skip to content

Commit d7318ee

Browse files
committedDec 12, 2023
see #881
feature: added hooks to element and attribute removal
1 parent f89d726 commit d7318ee

9 files changed

+33
-5
lines changed
 

‎dist/purify.cjs.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/purify.cjs.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/purify.es.mjs

+7
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,9 @@ function createDOMPurify() {
880880
arrayPush(DOMPurify.removed, {
881881
element: node
882882
});
883+
/* Execute a hook if present */
884+
885+
_executeHook('uponRemoveElement', node, null);
883886

884887
try {
885888
// eslint-disable-next-line unicorn/prefer-dom-node-remove
@@ -908,6 +911,10 @@ function createDOMPurify() {
908911
from: node
909912
});
910913
}
914+
/* Execute a hook if present */
915+
916+
917+
_executeHook('uponRemoveAttribute', node, null);
911918

912919
node.removeAttribute(name); // We void attribute values for unremovable "is"" attributes
913920

‎dist/purify.es.mjs.map

+1-1
Large diffs are not rendered by default.

‎dist/purify.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/purify.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/purify.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/purify.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/purify.js

+7
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,10 @@ function createDOMPurify(window = getGlobal()) {
784784
*/
785785
const _forceRemove = function (node) {
786786
arrayPush(DOMPurify.removed, { element: node });
787+
788+
/* Execute a hook if present */
789+
_executeHook('uponRemoveElement', node, null);
790+
787791
try {
788792
// eslint-disable-next-line unicorn/prefer-dom-node-remove
789793
node.parentNode.removeChild(node);
@@ -811,6 +815,9 @@ function createDOMPurify(window = getGlobal()) {
811815
});
812816
}
813817

818+
/* Execute a hook if present */
819+
_executeHook('uponRemoveAttribute', node, null);
820+
814821
node.removeAttribute(name);
815822

816823
// We void attribute values for unremovable "is"" attributes

0 commit comments

Comments
 (0)
Please sign in to comment.