FlipText

Click button to flip text

  1. // ==UserScript==
  2. // @name FlipText
  3. // @version 0.6
  4. // @namespace http://userscripts.org/users/zackton
  5. // @description Click button to flip text
  6. // @include *
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10. function formYes() {
  11. if($('textarea').length > 0) {
  12. addGlobalStyle('.flipLink {position:relative;z-index:100;background-color:transparent;font-size:75%;}');
  13. }
  14. }
  15.  
  16. function addGlobalStyle(css) {
  17. var head = document.getElementsByTagName('head')[0];
  18. if (head) {
  19. var style = document.createElement('style');
  20. style.type = 'text/css';
  21. style.innerHTML = css;
  22. head.appendChild(style);
  23. }
  24. }
  25. addGlobalStyle('.flipLink {position:relative;z-index:100;background-color:transparent;font-size:75%;}');
  26.  
  27. function flipText(text) {
  28. var revText = '';
  29. for (var i = 0; i < text.length; i++) {
  30. var orgChar = text.charAt(text.length - 1 - i);
  31. var revChar = flipTable[orgChar];
  32. revText += (revChar != undefined) ? revChar : orgChar;
  33. }
  34. return revText;
  35. }
  36.  
  37. function flipClick(event) {
  38. //console.log('flipClick: event.target=' + event.target);
  39. if (event.target.hasAttribute("textfieldId")) {
  40. textfieldId = event.target.getAttribute("textfieldId");
  41. //console.log('flipClick: textfieldId=' + textfieldId);
  42. document.getElementById(textfieldId).value = flipText(document.getElementById(textfieldId).value);
  43. }
  44. }
  45.  
  46. function addInputfield(fieldObj) {
  47. if (fieldObj.id != '') {
  48. //console.log('addInputfield: fieldObj.id=' + fieldObj.id);
  49. var flipLink = document.createElement("a");
  50. //flipLink.href = "#";
  51. flipLink.innerHTML = "Flipit!";
  52. flipLink.className = "flipObj";
  53. flipLink.setAttribute("textfieldId", fieldObj.id);
  54. flipLink.addEventListener('click', flipClick, true);
  55. fieldObj.parentNode.appendChild(flipLink);
  56. } else {
  57. //console.log('addInputfield: fieldObj without id: ' + fieldObj.name + ', ' + fieldObj.className);
  58. }
  59. }
  60.  
  61. function addAllInputfields() {
  62. inputObjs = document.getElementsByTagName("input");
  63. for (var i = 0; i < inputObjs.length; i++) {
  64. if (inputObjs[i].type == "text") {
  65. addInputfield(inputObjs[i]);
  66. }
  67. }
  68. textareaObjs = document.getElementsByTagName("textarea");
  69. for (var i = 0; i < textareaObjs.length; i++) {
  70. addInputfield(textareaObjs[i]);
  71. }
  72. }
  73.  
  74. addAllInputfields();
  75.  
  76.  
  77. // the character conversion table
  78. var flipTable = {
  79. 'a' : '\u0250',
  80. 'b' : 'q',
  81. 'c' : '\u0254',
  82. 'd' : 'p',
  83. 'e' : '\u01DD',
  84. 'f' : '\u025F',
  85. 'g' : '\u0183',
  86. 'h' : '\u0265',
  87. 'i' : '!',
  88. 'j' : '\u027E',
  89. 'k' : '\u029E',
  90. 'l' : '\u05DF',
  91. 'm' : '\u026F',
  92. 'n' : 'u',
  93. 'p' : 'b',
  94. 'r' : '\u0279',
  95. 't' : '\u0287',
  96. 'v' : '\u028C',
  97. 'w' : '\u028D',
  98. 'y' : '\u028E',
  99. 'ä' : '\u1EA1',
  100. 'ö' : '\u1ECD',
  101. 'ö' : '\u1EE5',
  102. '[' : ']',
  103. '(' : ')',
  104. '{' : '}',
  105. '<' : '>',
  106. '?' : '\u00BF',
  107. '!' : '\u00A1',
  108. '.' : '\u02D9',
  109. ';' : '\u061B',
  110. "'" : ',',
  111. '"' : '\u201e',
  112. '_' : '\u203E',
  113. '^' : '\u203f',
  114. '&' : '\u214b',
  115. '\u203F' : '\u2040',
  116. '\u2045' : '\u2046',
  117. '\u2234' : '\u2235',
  118. 'A' : '\u2200',
  119. 'C' : '\u0186',
  120. 'D' : '\u15E1',
  121. 'E' : '\u018e',
  122. 'F' : '\u2132',
  123. 'G' : '\u2141',
  124. 'J' : '\u017f',
  125. 'L' : '\u2142',
  126. 'N' : '\u0418',
  127. 'P' : '\u0500',
  128. 'R' : '\u1D1A',
  129. 'T' : '\u22a5',
  130. 'U' : '\u144e',
  131. 'V' : '\u039b',
  132. 'W' : 'M',
  133. 'Y' : '\u2144',
  134. 'Ä' : '\u1EA0',
  135. 'Ü' : '\u1EE4',
  136. 'Ö' : '\u1ECC',
  137. '1' : '\u21C2',
  138. '2' : '\u1105',
  139. '3' : '\u0190',
  140. '4' : '\u3123',
  141. '5' : '\u03DA',
  142. '6' : '9',
  143. '7' : '\u3125',
  144. '9' : '6',
  145. }
  146.  
  147. for (i in flipTable) {
  148. flipTable[flipTable[i]] = i
  149. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址