Guest User

Untitled

a guest
Sep 4th, 2025
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. function mouseoverfunc(e) {
  2. var newnode;
  3. if (this.tagName == "SPAN") { // video
  4. if (this.children[1].style.display != "none") {
  5. return;
  6. }
  7. newnode = this.cloneNode(true);
  8. setNodeStyle(newnode);
  9. updateVideoChild(newnode, this);
  10. newnode.children[1].setAttribute('muted', true);
  11. newnode.children[1].muted = true;
  12. newnode.children[2].remove();
  13.  
  14. // Create an overlay to prompt for spacebar press
  15. var soundOverlay = document.createElement("div");
  16. soundOverlay.style.position = "absolute";
  17. soundOverlay.style.top = "0";
  18. soundOverlay.style.left = "0";
  19. soundOverlay.style.width = "100%";
  20. soundOverlay.style.height = "100%";
  21. soundOverlay.style.background = "rgba(0, 0, 0, 0.5)";
  22. soundOverlay.style.color = "white";
  23. soundOverlay.style.display = "flex";
  24. soundOverlay.style.alignItems = "center";
  25. soundOverlay.style.justifyContent = "center";
  26. soundOverlay.style.cursor = "default";
  27. soundOverlay.style.zIndex = "111"; // Above video (newnode zIndex is 110)
  28. soundOverlay.innerText = "Press Spacebar to Enable Sound";
  29.  
  30. // Prevent clicks on the overlay from doing anything
  31. soundOverlay.onclick = function(e) {
  32. console.log("Sound overlay clicked, ignoring");
  33. e.preventDefault();
  34. e.stopPropagation();
  35. };
  36.  
  37. // Prevent clicks on the video from triggering navigation
  38. newnode.children[1].onclick = function(e) {
  39. console.log("Video element clicked, ignoring");
  40. e.preventDefault();
  41. e.stopPropagation();
  42. };
  43.  
  44. // Add keydown listener for spacebar to unmute
  45. var keyHandler = function(e) {
  46. if (e.keyCode === 32) { // Spacebar
  47. console.log("Spacebar pressed, enabling sound");
  48. newnode.children[1].muted = false;
  49. newnode.children[1].play().catch(err => {
  50. console.error("Playback with sound failed:", err);
  51. });
  52. soundOverlay.remove();
  53. document.removeEventListener("keydown", keyHandler); // Remove listener after use
  54. e.preventDefault();
  55. e.stopPropagation();
  56. }
  57. };
  58. document.addEventListener("keydown", keyHandler);
  59.  
  60. newnode.appendChild(soundOverlay);
  61. document.body.prepend(newnode);
  62. newnode.children[1].play().catch(err => {
  63. console.error("Autoplay failed:", err);
  64. });
  65.  
  66. // Handle clicks on the newnode container (outside video/overlay)
  67. newnode.onclick = function(e) {
  68. if (e.target !== newnode.children[1] && e.target !== soundOverlay) {
  69. console.log("Clicked outside video/overlay, removing node");
  70. this.remove();
  71. document.removeEventListener("keydown", keyHandler); // Clean up key listener
  72. }
  73. e.preventDefault();
  74. e.stopPropagation();
  75. };
  76.  
  77. // Clean up key listener on mouseout
  78. newnode.onmouseout = function(e) {
  79. document.removeEventListener("keydown", keyHandler);
  80. mouseoutfunc(e);
  81. };
  82. } else { // pictures
  83. if (this.lastElementChild.className && this.lastElementChild.style.display != "none") {
  84. return;
  85. }
  86. newnode = document.createElement("img");
  87. newnode.src = this.href;
  88. if (newnode.src != undefined && newnode.src.endsWith("imagewebp")) {
  89. newnode.src += ".undefined";
  90. }
  91. setNodeStyle(newnode);
  92. document.body.prepend(newnode);
  93. newnode.onclick = function(e) {
  94. console.log("Image clicked, removing");
  95. this.remove();
  96. e.preventDefault();
  97. e.stopPropagation();
  98. };
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment