Dropbox Direct Links

Displays direct link to shared file for embedding purposes

目前为 2014-12-04 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Dropbox Direct Links
  3. // @namespace https://github.com/phracker
  4. // @version 1.1.15
  5. // @description Displays direct link to shared file for embedding purposes
  6. //
  7. // @grant GM_setClipboard
  8. // @grant GM_getResourceText
  9. // @grant GM_getResourceURL
  10. // @grant GM_log
  11. // @grant GM_getValue
  12. // @grant GM_setValue
  13. // @grant GM_xmlhttpRequest
  14. // @grant GM_openInTab
  15. // @grant GM_info
  16. //
  17. // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js
  18. // @require https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.js
  19. // @resource zcswf https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.swf
  20. //
  21. // @include http*://*dropbox.com/s/*/*
  22. // ==/UserScript==
  23.  
  24. // direct url
  25. var durl = document.URL.replace('www.dropbox.com', 'dl.dropboxusercontent.com').replace(/\?.*/, '').replace(/\#.*/, '');
  26.  
  27. // Create direct link and copy button
  28. var div = document.createElement('div');
  29. div.setAttribute('align', 'center');
  30. div.setAttribute('style', 'font-size: 12px; vertical-align: middle;');
  31. var a = document.createElement('a');
  32. a.href = durl;
  33. a.setAttribute('style', 'text-decoration: none;');
  34. a.textContent = durl;
  35. var b = document.createElement('button');
  36. b.setAttribute('id', 'durl');
  37. b.setAttribute('data-clipboard-text', durl);
  38. b.setAttribute('title', 'Copy Direct URL');
  39. b.setAttribute('style', 'font-size: 10px; padding: 0px 6px; margin-left: 1em; font-weight: 800;');
  40. b.setAttribute('class', 'freshbutton-lightblue');
  41. b.appendChild(document.createTextNode('Copy'));
  42. div.appendChild(document.createTextNode('Direct: '));
  43. div.appendChild(a);
  44. div.appendChild(b);
  45. // Append to page
  46. document.getElementById('page-content').appendChild(div);
  47.  
  48. //Create menu button
  49. var mb = document.createElement('button');
  50. mb.setAttribute('id', 'mdurl');
  51. mb.setAttribute('data-clipboard-text', durl);
  52. mb.setAttribute('title', 'Copy Direct URL');
  53. mb.setAttribute('style', 'display: inline-block; vertical-align: middle; zoom: 1; margin-left: 8px;');
  54. mb.setAttribute('class', 'freshbutton-blue');
  55. mb.appendChild(document.createTextNode('Copy Direct URL'));
  56. // Add to menu
  57. var buttons = document.getElementsByClassName('buttons').item(0);
  58. var extrasButton = document.getElementById('non-owner-menu-button');
  59. buttons.insertBefore(mb,extrasButton);
  60.  
  61.  
  62. ZeroClipboard.config({
  63. // swfPath: "https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.swf"
  64. // swfPath: GM_getResourceURL("zcswf");
  65. swfPath: GM_getResourceText("zcswf");
  66. });
  67.  
  68. var zc = new ZeroClipboard($('#durl'));
  69. zc.on('ready', function(event) {
  70. zc.on('copy', function(event) {
  71. event.clipboardData.setData('text/plain', durl);
  72. });
  73. });
  74. var zcm = new ZeroClipboard($('#mdurl'));
  75. zcm.on('ready', function(event) {
  76. zcm.on('copy', function(event) {
  77. event.clipboardData.setData('text/plain', durl);
  78. });
  79. });