Skip to content

Instantly share code, notes, and snippets.

@WooodHead
Forked from JohnPhamous/chaos-string-test.js
Created February 4, 2023 04:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save WooodHead/ea4044a1d2ceb1f0b9c72d79facd9989 to your computer and use it in GitHub Desktop.
Save WooodHead/ea4044a1d2ceb1f0b9c72d79facd9989 to your computer and use it in GitHub Desktop.
javascript:(function(){ function walkDOMTree( root, whatToShow = NodeFilter.SHOW_ALL, { inspect, collect, callback } = {} ) { const walker = document.createTreeWalker(root, whatToShow, { acceptNode(node) { if (inspect && !inspect(node)) { return NodeFilter.FILTER_REJECT; } if (collect && !collect(node)) { return NodeFilter.FILTER_SKIP; } return NodeFilter.FILTER_ACCEPT; }, }); const nodes = []; let n; while ((n = walker.nextNode())) { callback?.(n); nodes.push(n); } return nodes; } const PARENT_TAGS_TO_EXCLUDE = ["STYLE", "SCRIPT", "TITLE"]; function getAllTextNodes(el) { return walkDOMTree(el, NodeFilter.SHOW_TEXT, { inspect: (textNode) => !PARENT_TAGS_TO_EXCLUDE.includes(textNode.parentElement?.nodeName), }); } function generateRandomString(length) { var result = ""; var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } const textNodes = getAllTextNodes(document.body); textNodes.forEach((node) => { const textNodeLength = node.textContent.length; node.textContent = generateRandomString(textNodeLength * 3); }); })();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment