Guest User

Untitled

a guest
Jun 5th, 2014
615
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.57 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Tumblr Smaller Text
  3. // @namespace http://alphasour.tumblr.com/
  4. // @version 0.4
  5. // @description Shrinks or Resets text in any TinyMCE area
  6. // @include *://*.tumblr.com/*
  7. // @copyright 2013+, Allyson Moisan
  8. // ==/UserScript==
  9.  
  10. var btnUp = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAeCAYAAAGj9fUKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcNJREFUeNpi/P//PwMyYAIRvTMWKMBFQCpAuGf6/P8gmhFdC0AAYQgwAfU7oIggmVGP1QyAAMIQQAdM6AJAO+YD8X+sCoAS9UAK5IkDMEUErQAIINLdgFUBsqNwmXAAyaH/cVoB8mJxRgIjsiIUR0IlQKYpABUqUscXAAFE0ASiggHJjQIUGQAE67EpAhq8H4jXk+VHaMg9AOIAIPs+SQZANX+AGtAACn4MQ2BJHh2DshEQv8chvh/GpzgWAAKIIgOYqBb/A6MZGB3vgfg8Sbqh0SCAFCUCaFE0HzmKkDHB0EbKxA9geZXY1DYfykyElmkkBVgCqIQA2rgAath9ojQj2XoAWppeQLediYCtoAziAMUfYFkWpoAFh60gmxiAzhXE4pqEIZ62AQKM4jw9YC4f0pbjSmoBQAqUrBSBye0DrSxHr7ALgJQ9EBdCLZ8IxPlA3Ah0xAGaWo5eeQItdCSingRlefT6MRFWntAszrFY/ABKg5p9CTSzHIvFhtDy+gOxDmCiksWOQIsvQNlEO4DkQgZHHBMCjtgSLEmWQ5uGIIsFCCUsHKFzgKxgx2JxA74UDZQDJT5DJKH96H2c0bJ9QAAAHytL4ubDLqIAAAAASUVORK5CYII=";
  11. var btnDn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAeCAYAAAGj9fUKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZVJREFUeNpi/P//PwMyYAIRvTMW7EcRAAIBoOB9EIMRXQtAADFiNQOrANCM/1i1AAQQhgA+I/ZjU4BhAsyu4owERqKsAAgg4t1AYwUgLwLxeSh7Pk5HQiUTSPImQTcABBBBE0j2JdCdBhQZAAT9lBrAgMVV/9GDF58BAuiaoUEeAGTXY6gGBSIu3DN9/n8gVkDjByCroTgWAAKIIgOYqBr/o5op1Awqe2HlGc54BipQAFLxQPwQiB8Ak+cBpILwARAvAIo14itOQGlcAKjoAVJRCxJzBOL3sCKGqBSGxbmJQAMWEPQzUGM/rECD2hgIxPOHQdoGCDCK8/SAuXx4W46rTTEa7JQAFmoYAoyaACClD+UuhJVNZPkc1A6BFnLo4g5YxEDtqvVA3ADF96ElLPn5HGp5P7TRdgFUtqH7COoYWIIElbz2UAd8AGJFoPoPNClkoK2081DuBCDeCGWDmjcO0DpFkeqWQ4P1PpS7ARoyyACUBgwIOYBky6HRcR9ayYFqx0Rc1S+QAjnyAFCN42jZPmgsBwAk7vjEBUfMOgAAAABJRU5ErkJggg==";
  12. var insertionQ=function(){function f(t,n){var s,o="insQ_"+e++;var u=function(e){if(e.animationName===o||e[r]===o){if(!c(e.target)){n(e.target)}}};s=document.createElement("style");s.innerHTML="@keyframes "+o+" { from { clip: rect(1px, auto, auto, auto); } to { clip: rect(0px, auto, auto, auto); } }"+"\n"+"@"+i+"keyframes "+o+" { from { clip: rect(1px, auto, auto, auto); } to { clip: rect(0px, auto, auto, auto); } }"+"\n"+t+" { animation-duration: 0.001s; animation-name: "+o+"; "+i+"animation-duration: 0.001s; "+i+"animation-name: "+o+"; "+" } ";document.head.appendChild(s);setTimeout(function(){document.addEventListener("animationstart",u,false);document.addEventListener("MSAnimationStart",u,false);document.addEventListener("webkitAnimationStart",u,false)},20)}function l(e){e["-+-"]=true}function c(e){return t&&e["-+-"]===true}function h(e){if(c(e.parentNode)){return e}else{return h(e.parentNode)}}function p(e){l(e);e=e.firstChild;for(;e;e=e.nextSibling){if(e!==undefined&&e.nodeType===1){p(e)}}}function d(e,t){var n=[];var r=function(){var e;return function(){clearTimeout(e);e=setTimeout(function(){n.forEach(p);t(n);n=[]},10)}}();f(e,function(e){if(c(e)){return}l(e);var t=h(e);if(n.indexOf(t)<0){n.push(t)}r()})}var e=100,t,n=false,r="animationName",i="",s="Webkit Moz O ms Khtml".split(" "),o="",u=document.createElement("div");if(u.style.animationName){n=true}if(n===false){for(var a=0;a<s.length;a++){if(u.style[s[a]+"AnimationName"]!==undefined){o=s[a];r=o+"AnimationName";i="-"+o.toLowerCase()+"-";n=true;break}}}return function(e,r){if(n&&e.match(/[^{}]/)){t=r?false:true;if(t){p(document.body)}return{every:function(t){f(e,t)},summary:function(t){d(e,t)}}}else{return false}}}();
  13.  
  14. var gm_uwin = ( function() {
  15. var a;
  16. try {
  17. a = unsafeWindow == window ? false : unsafeWindow;
  18. // Chrome: window == unsafeWindow
  19. } catch(e) {
  20. }
  21. return a || ( function() {
  22. var el = document.createElement('p');
  23. el.setAttribute('onclick', 'return window;');
  24. return el.onclick();
  25. }());
  26. }());
  27.  
  28. var $ = gm_uwin.jQuery;
  29.  
  30. function shrinkPostText(m) {
  31. var post = $(m).contents().find('#tinymce');
  32. var markup = $('<body>').append(post.html());
  33. markup.find("div, p, li").each(function(i, e) {
  34. var t = $(e).children("sup, sub");
  35. if (t.length >= 1) {
  36. $(t).parent().each(function(j, l) {
  37. l.innerHTML = $(t).html();
  38. });
  39. }
  40. var s = $(e).children("small");
  41. if (s.length < 1) {
  42. $(e).wrapInner('<small />');
  43. }
  44. });
  45. post.html(markup.html());
  46. }
  47.  
  48. function resetPostText(m) {
  49. var post = $(m).contents().find('#tinymce');
  50. var markup = $('<body>').append(post.html());
  51. markup.find("div, p, li").each(function(i, e) {
  52. var s = $(e).children("small, sup, sub");
  53. if (s.length >= 1) {
  54. $(s).parent().each(function(j, l) {
  55. l.innerHTML = $(s).html();
  56. });
  57. }
  58. });
  59. post.html(markup.html());
  60. }
  61.  
  62. function insertButton(v) {
  63. if($($(v).parents("tr").get(0)).contents().find("a.mce_shrinktext").length == 0)
  64. {
  65. var td1 = document.createElement("td");
  66. $(td1).css("position", "relative");
  67. td1.innerHTML = '<a role="button" id="post_two_shrink" href="javascript:;" class="mceButton mceButtonEnabled mce_shrinktext" onmousedown="return false;" onclick="return false;" aria-labelledby="post_two_shrink_voice" title="Shrink Text" tabindex="-1"><span class="mceIcon mce_shrinktext"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="post_two_shrink_voice">Shrink Text</span></a>';
  68. $(td1).on("click", function() {
  69. var m = $(this).parents('table.mceLayout').contents().find('td.mceIframeContainer iframe');
  70. shrinkPostText(m);
  71. });
  72. $(td1).insertAfter($(v).parent());
  73. var td2 = document.createElement("td");
  74. $(td2).css("position", "relative");
  75. td2.innerHTML = '<a role="button" id="post_two_reset" href="javascript:;" class="mceButton mceButtonEnabled mce_resettext" onmousedown="return false;" onclick="return false;" aria-labelledby="post_two_reset_voice" title="Reset Text" tabindex="-1"><span class="mceIcon mce_resettext"></span><span class="mceVoiceLabel mceIconOnly" style="display: none;" id="post_two_reset_voice">Reset Text</span></a>';
  76. $(td2).on("click", function() {
  77. var m = $(this).parents('table.mceLayout').contents().find('td.mceIframeContainer iframe');
  78. resetPostText(m);
  79. });
  80. $(td2).insertAfter($(v).parent());
  81. }
  82. }
  83.  
  84.  
  85. $(document).ready(function() {
  86. $("head").append('<style type="text/css">span.mce_shrinktext { background:url(\'' + btnDn + '\') !important; } span.mce_resettext { background:url(\'' + btnUp + '\') !important; }</style>');
  87. if ($('a.mce_blockquote').length > 0) {
  88. $('a.mce_blcokquote').each(function(i, v) {
  89. insertButton(v);
  90. });
  91. }
  92. insertionQ('a.mce_blockquote').every(function(v) {
  93. insertButton(v);
  94. });
  95. });
Advertisement
Add Comment
Please, Sign In to add comment