Embed to HTML5

Replaces media embed tags with HTML5 equivalents

当前为 2016-06-10 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Embed to HTML5
  3. // @namespace DoomTay
  4. // @description Replaces media embed tags with HTML5 equivalents
  5. // @version 1.0.3
  6. // @exclude *.svg
  7. // @grant none
  8.  
  9. // ==/UserScript==
  10.  
  11. var embeds = document.embeds;
  12.  
  13. var audioFiletypes = [".mp3",".wav",".ogg"];
  14. var videoFiletypes = [".mp4"];
  15.  
  16. if(embeds.length > 0)
  17. {
  18. for(var e = embeds.length - 1; e >= 0; e--)
  19. {
  20. if(audioFiletypes.some(elem => embeds[e].src.includes(elem))) var replacement = document.createElement("audio");
  21. else if(videoFiletypes.some(elem => embeds[e].src.includes(elem))) var replacement = document.createElement("video");
  22. else continue;
  23. replacement.src = decodeURIComponent(embeds[e].src);
  24. replacement.width = embeds[e].width;
  25. replacement.height = embeds[e].height;
  26. if(embeds[e].hidden) replacement.style.display = "none";
  27. replacement.autoplay = parseBool(embeds[e].getAttribute("autostart") || embeds[e].getAttribute("autoplay")) || audioFiletypes.some(elem => window.location.href.includes(elem));
  28. replacement.controls = parseBool(embeds[e].getAttribute("controller"));
  29. replacement.loop = parseBool(embeds[e].getAttribute("loop"));
  30. if(embeds[e].parentNode.nodeName == "OBJECT")
  31. {
  32. embeds[e].parentNode.parentNode.replaceChild(replacement, embeds[e].parentNode);
  33. }
  34. else
  35. {
  36. embeds[e].parentNode.replaceChild(replacement, embeds[e]);
  37. }
  38. }
  39. }
  40.  
  41. function getBitrate(media)
  42. {
  43. console.log(media);
  44. return 44;
  45. }
  46.  
  47. function parseBool(string)
  48. {
  49. return string == "true";
  50. }