Skip to content

Instantly share code, notes, and snippets.

@iamevn
Last active April 30, 2020 05:11
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 iamevn/a8c520fea793502c6926dbb3f32df519 to your computer and use it in GitHub Desktop.
Save iamevn/a8c520fea793502c6926dbb3f32df519 to your computer and use it in GitHub Desktop.
javascript:var coding = "abcdefghijklmnopqrstuvwxyzabcdefghijklmABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM"; function rot13(t) { for (var r = "",i=0;i<t.length;i++) { character = t.charAt(i); position = coding.indexOf(character); if (position > -1) character = coding.charAt(position + 13); r += character; } return r; } S=window.getSelection(); function t(N) { return N.nodeType == N.TEXT_NODE; } function r(N) { if (t(N)) N.data = rot13(N.data); } for (j=0;j<S.rangeCount;++j) { var g=S.getRangeAt(j), e=g.startContainer, f=g.endContainer, E=g.startOffset, F=g.endOffset, m=(e==f); if(!m||!t(e)) { /* rot13 each text node between e and f, not including e and f. */ q=document.createTreeWalker(g.commonAncestorContainer, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false); q.currentNode=e; for(N=q.nextNode(); N && N != f; N = q.nextNode()) r(N); } if (t(f)) f.splitText(F); if (!m) r(f); if (t(e)) { r(k=e.splitText(E)); if(m)f=k; e=k;} if (t(f)) g.setEnd(f,f.data.length); } void 0
var coding = "abcdefghijklmnopqrstuvwxyzabcdefghijklmABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM";
function rot13(t) {
for (var r = "", i = 0; i < t.length; i++) {
character = t.charAt(i);
position = coding.indexOf(character);
if (position > -1) character = coding.charAt(position + 13);
r += character;
}
return r;
}
S = window.getSelection();
function t(N) {
return N.nodeType == N.TEXT_NODE;
}
function r(N) {
if (t(N)) N.data = rot13(N.data);
}
for (j = 0; j < S.rangeCount; ++j) {
var g = S.getRangeAt(j),
e = g.startContainer,
f = g.endContainer,
E = g.startOffset,
F = g.endOffset,
m = (e == f);
if (!m || !t(e)) {
/* rot13 each text node between e and f, not including e and f. */
q = document.createTreeWalker(g.commonAncestorContainer, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false);
q.currentNode = e;
for (N = q.nextNode(); N && N != f; N = q.nextNode()) r(N);
}
if (t(f)) f.splitText(F);
if (!m) r(f);
if (t(e)) {
r(k = e.splitText(E));
if (m) f = k;
e = k;
}
if (t(f)) g.setEnd(f, f.data.length);
}
void 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment