hover_autocopy

A small icon will prompt up after you selected some text, move the cursor over the icon will copy the selected text to clipboard

当前为 2014-07-21 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @id hover_autocopy@userscript.org
  3. // @name hover_autocopy
  4. // @version 1.0
  5. // @namespace hover_autocopy@userscript.org
  6. // @description A small icon will prompt up after you selected some text, move the cursor over the icon will copy the selected text to clipboard
  7. // @include http*
  8. // @include file*
  9. // @run-at document-end
  10. // @grant GM_setClipboard
  11. // ==/UserScript==
  12. var icon_delay = 3000; //
  13.  
  14. if (typeof GM_setClipboard != 'function') alert('Your UserScript client has no GM_setClipboard support');
  15. var icon_css = '#copytext_icon{\
  16. background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAYCAYAAAGabn0pAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMxSURBVHjaLMkxCoAwAASwnF+t0HcJ7eInz8FugaQtuOcAVxJJ3vXs4t+DwgcAAP//Yvz//z9M+X8GBgZGZBUMyWlJDEwMDAyCSILlAAAAAP//YkAD/5E5yWlJDCxoku8ZGBj+J6clwcQYsemEu+j///8MAAAAAP//YoR5BMkz5QwMDHsYGBjOMiLpusvAwKCcnJYEU83IhCSpxMDA8H/urHmMDAwMrgwMDHCHKUEFdiO54T0jNu8wMDAwwow3xubi////MwAAAAD//3SS0QnDMAxEnzNCVvAqzQhdoIF2hHSEZAWDvUhWyAwZIStcf2SQG3wgEEJCpzs1bD2qDW5gA55ArMVqkY81hKCcinIqMp6fnMrXuC83JXt2GCbTDrslAufw13S5g6Or78DD8tE0bzZf7kN6iMA5v1+HCcniPFfnF5qQhCR+AAAA//+UlE0OgjAQhT/YY+IWd14Bj4CJxjUcQBM8ghxBjwAJHICd0aVH0CPgXhaayAFwM01qqSFO0vQnfZ3Oe6+1sm0wrfPwxZHLcIzFsr2wsR0BleiabpJ1DcRABtyLvIyV722ZK+l3wBWYFnl5E7mif64dNI8mAyjy8iU6h7/AoYk+Hc9bbZqK5taaO03PWi0uVwv8id/jyjFYfcrpB2/kde277QHEnhdg7hrPHGAPmEC9pFSNHSPrUOjZZ7qvOyCxcKC3QH1bypnWDaK3zduBAn9YrXYUhIEg+rBKbandNmrtGQKKtQHbCHqEeARzhCwktcQjmCMkIOnNFWzTaTOBcdmf4sAW2Z3s7Jt583aNSuKhLjpycRKllB+tjfAfSyhoyvKY6Dhn6ylTj6nWAQj3h3hJ61Uui5AKmRBbAGCcy+LJ7h9vxKZTCwCP9t6WpBTRsJDLIgVwpc/6V8RORQ2C4NL3/U6dJwUSdIjom8CZhupam0wnWG9WNpcTccAZmAdtFNKcDf9Uw33OUHP/aCjByMJSjvTIXy/zxczGhxufUOpdUuq1iG2IfO0D+f4Qc3nr+KuCB+VKUzt692UZ2YcGkmJx2RPkZNqg1LB6S+r+8hgPAEIN7OrjhtL21MxLj5RLYnOnLrwHAF7uNkmwOR4MAAAAAElFTkSuQmCC");\
  17. background-repeat:no-repeat;background-size:100% 100%;\
  18. position:fixed;width:20px;height:20px;z-index:10000;display:none}'
  19.  
  20. var icondiv = document.createElement('div');
  21. icondiv.setAttribute('id', 'copytext_icon');
  22. document.body.appendChild(icondiv);
  23. var iconcss = document.createElement('style');
  24. iconcss.innerHTML = icon_css;
  25. document.body.appendChild(iconcss);
  26.  
  27. document.addEventListener('mouseup',
  28. function(e) {
  29. var t = e.target;
  30. if (e.button != 0) return;
  31. var stext = getSelection().toString();
  32. console.log(stext);
  33. if (stext) {
  34. icondiv.style.display = "block";
  35. icondiv.style.left = (e.clientX - 20) + 'px';
  36. icondiv.style.top = (e.clientY - 40) + 'px';
  37. setTimeout(function() {
  38. icondiv.style.display = "none"
  39. }, icon_delay);
  40. }
  41. }, false);
  42.  
  43.  
  44. icondiv.addEventListener('mouseover',
  45. function(e) {
  46. icondiv.style.display = "none";
  47. console.log(getSelection().toString());
  48. if (e.button == 0) GM_setClipboard(getSelection().toString());
  49. }, false);