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