Dropbox Direct Links

Displays direct link to shared file for embedding purposes

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

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