Initial commit of 0.2.0
This commit is contained in:
65
assets/js/obfuscation.js
Normal file
65
assets/js/obfuscation.js
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* @package ogre-obfuscation
|
||||
* @author cleverogre
|
||||
* @version 0.2.0
|
||||
* @since 0.1.0
|
||||
*/
|
||||
|
||||
(() => {
|
||||
|
||||
const reObfuscateElement = (element) => {
|
||||
element.outerHTML = unEncodeEmailChars(reObfuscateCore(element.getAttribute('data-content')));
|
||||
};
|
||||
|
||||
const reObfuscate = (str, id) => {
|
||||
const el = document.getElementById(id);
|
||||
const newEl = document.createTextNode('');
|
||||
newEl.innerHTML = unEncodeEmailChars(reObfuscateCore(str));
|
||||
el.parentNode.replaceChild(newEl, el);
|
||||
};
|
||||
|
||||
const reObfuscateCore = (str) => {
|
||||
let out = '';
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
out = str.charAt(i) + out;
|
||||
}
|
||||
return out;
|
||||
};
|
||||
|
||||
const unEncodeEmailChars = (str) => {
|
||||
let i = 0;
|
||||
let num = '';
|
||||
let out = '';
|
||||
|
||||
while (i < str.length) {
|
||||
if (str.charAt (i) == '&') {
|
||||
num = '';
|
||||
i += 2; /// skip &#
|
||||
|
||||
while (str.charAt(i) != ';' && i < str.length) {
|
||||
num += str.charAt(i);
|
||||
i++;
|
||||
}
|
||||
|
||||
if (str.charAt(i) == ";") {
|
||||
i++;
|
||||
}
|
||||
|
||||
out += String.fromCharCode(parseInt(num));
|
||||
} else {
|
||||
out += str.charAt(i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
};
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const elements = document.getElementsByClassName('obfuscate');
|
||||
for (let i = elements.length - 1; i >= 0; i--) {
|
||||
reObfuscateElement(elements[i]);
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user