source.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // NOTE: this bookmarklet assumes you have a standard Apache directory listing
  2. (function() {
  3. var head = document.getElementsByTagName('head')[0],
  4. body = document.getElementsByTagName('body')[0],
  5. script = document.createElement('script'),
  6. link = document.createElement('link');
  7. // TODO: test if document is fully loaded
  8. var mainStyle = link.cloneNode(),
  9. fancyboxStyle = link.cloneNode();
  10. mainStyle.href = 'https://raw.github.com/dom111/webdav-js/master/assets/css/style-min.css';
  11. fancyboxStyle.href = 'https://raw.github.com/dom111/webdav-js/master/external/fancybox/jquery.fancybox.css?v=2.0.6';
  12. fancyboxStyle.rel = mainStyle.rel = 'stylesheet';
  13. fancyboxStyle.type = mainStyle.type = 'text/css';
  14. fancyboxStyle.media = mainStyle.media = 'screen';
  15. head.appendChild(mainStyle);
  16. head.appendChild(fancyboxStyle);
  17. var jqueryScript = script.cloneNode(),
  18. fancyboxScript = script.cloneNode(),
  19. webdavScript = script.cloneNode();
  20. jqueryScript.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
  21. fancyboxScript.src = 'https://raw.github.com/dom111/webdav-js/master/external/fancybox/jquery.fancybox.js?v=2.0.6';
  22. webdavScript.src = 'https://raw.github.com/dom111/webdav-js/master/src/webdav-min.js';
  23. jqueryScript.type = fancyboxScript.type = webdavScript.type = 'text/javascript';
  24. head.appendChild(jqueryScript);
  25. head.appendChild(fancyboxScript);
  26. var header = '\
  27. <div class="content">\
  28. <div style="display: none;">',
  29. footer = '\
  30. </div> <!-- hider -->\
  31. </div> <!-- .content -->\
  32. <div class="upload">\
  33. Drop files here to upload or <a href="#createDirectory" class="create-directory">create a new directory</a>\
  34. </div>\
  35. ',
  36. content = body.innerHTML;
  37. body.innerHTML = header + content + footer;
  38. // need to wait for jQuery before launching the main script
  39. var interval = window.setInterval(function() {
  40. if (typeof jQuery != 'undefined') {
  41. head.appendChild(webdavScript);
  42. window.clearInterval(interval);
  43. }
  44. }, 100);
  45. })();