Swf2js Flash Player

Play flash (.swf) files

  1. // ==UserScript==
  2. // @name Swf2js Flash Player
  3. // @namespace i2p.schimon.swf2js
  4. // @description Play flash (.swf) files
  5. // @homepageURL https://schapps.woodpeckersnest.eu/
  6. // @supportURL https://gf.qytechs.cn/en/scripts/466071-flash-player/feedback
  7. // @copyright 2023, Schimon Jehudah (http://schimon.i2p)
  8. // @license MIT; https://opensource.org/licenses/MIT
  9. // @require https://gf.qytechs.cn/scripts/466069-swf2js/code/swf2js.js?version=1189198
  10. // @match *://*/*
  11. // @version 25.03
  12. // @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48dGV4dCB5PSIuOWVtIiBmb250LXNpemU9IjkwIj7imqE8L3RleHQ+PC9zdmc+Cg==
  13. // ==/UserScript==
  14.  
  15. // TODO Check 404 http status
  16.  
  17. // /makyen
  18. // /greasemonkey/greasemonkey/issues/3160#issuecomment-1456758080
  19. //const gmXmlhttpRequest = typeof GM_xmlhttpRequest === 'function' ? GM_xmlhttpRequest : GM.xmlHttpRequest;
  20.  
  21. /*
  22. cssSelectors = [
  23. 'object[type="application/x-shockwave-flash"]',
  24. '*[type="application/x-shockwave-flash"]',
  25. 'embed[src$=".swf"]']
  26. */
  27.  
  28. for (const element of document.querySelectorAll('embed[src$=".swf"]')) {
  29. let divElement = document.createElement('div');
  30. divElement.textContent = 'Play ⚡';// ▶️ Click to Play
  31. divElement.setAttribute('swf-data', element.src);
  32. divElement.style.height = element.closest('object').height;
  33. divElement.style.width = element.closest('object').width;
  34. divElement.style.fontSize = element.closest('object').height / 10;
  35. divElement.style.fontStyle = 'italic';
  36. divElement.style.display = 'table-cell';
  37. divElement.style.verticalAlign = 'middle';
  38. divElement.style.background = 'DarkRed';
  39. divElement.style.color = 'WhiteSmoke';
  40. divElement.style.textAlign = 'center';
  41. divElement.style.fontWeight = 'bold';
  42. divElement.style.userSelect = 'none';
  43.  
  44. divElement.addEventListener ("click", function() {
  45. swf2js.load(element.src);
  46. let swfElement = document.querySelector('div[id*="swf2js_"]:last-child');
  47. swfElement.style.height = divElement.style.height;
  48. swfElement.style.width = divElement.style.width;
  49. divElement.parentNode.replaceChild(swfElement, divElement);
  50. });
  51.  
  52. let orgElement = element.closest('object');
  53. insertAfter(orgElement, divElement);
  54. orgElement.remove();
  55.  
  56. }
  57.  
  58. // /questions/4793604/how-to-insert-an-element-after-another-element-in-javascript-without-using-a-lib
  59. function insertAfter(referenceNode, newNode) {
  60. referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
  61. }
  62.  
  63. /* Initial release
  64.  
  65. for (const element of document.querySelectorAll('embed[src$=".swf"]')) {
  66. swf2js.load(element.src);
  67. let newElement = document.querySelector('div[id*="swf2js_"]:last-child');
  68. let orgElement = element.closest('object');
  69. insertAfter(orgElement, newElement);
  70. orgElement.remove();
  71. }
  72.  
  73. function insertAfter(referenceNode, newNode) {
  74. referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
  75. }
  76.  
  77. */

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址