Deutsche Welle Out Load Reading

Enhances DW Learn German by improving readability, removing distractions, and adding shortcuts.

  1. // ==UserScript==
  2. // @name Deutsche Welle Out Load Reading
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.4
  5. // @description Enhances DW Learn German by improving readability, removing distractions, and adding shortcuts.
  6. // @author Yange
  7. // @match https://learngerman.dw.com/de/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Create a button
  16. let button = document.createElement('button');
  17. button.innerText = 'Clean';
  18. button.style.position = 'fixed';
  19. button.style.bottom = '20px';
  20. button.style.right = '20px';
  21. button.style.padding = '10px';
  22. button.style.background = 'red';
  23. button.style.color = 'white';
  24. button.style.border = 'none';
  25. button.style.borderRadius = '5px';
  26. button.style.cursor = 'pointer';
  27. button.style.zIndex = '9999';
  28.  
  29. // Button click event to remove the <nav>
  30. button.addEventListener('click', function() {
  31. let currentUrl = window.location.href;
  32. if (!currentUrl.endsWith('/lm')){
  33. window.location.href=currentUrl + '/lm';
  34. }
  35.  
  36. let navHeader = document.querySelector('nav.sk35agp');
  37.  
  38. if (navHeader) {
  39. navHeader.remove();
  40. }
  41.  
  42. let navElement = document.querySelector('nav.s1got9be');
  43.  
  44. if (navElement) {
  45. navElement.remove();
  46. }
  47.  
  48. let footerEle = document.querySelector('footer');
  49.  
  50. if (footerEle){
  51. footerEle.remove();
  52. }
  53. });
  54.  
  55. // Add button to the page
  56. document.body.appendChild(button);
  57.  
  58.  
  59.  
  60. // Function to toggle play/pause using the Space key
  61. function togglePlayPause(event) {
  62. if (event.code === 'Space') { // Check if Space key is pressed
  63. event.preventDefault(); // Prevent default scrolling behavior
  64. event.stopPropagation(); // Prevent interference with other key events
  65.  
  66. let playButton = document.querySelector('button.vjs-control'); // Find the play button
  67. if (playButton) {
  68. let scrollY = window.scrollY; // Store current scroll position
  69.  
  70. playButton.click(); // Simulate clicking the play/pause button
  71. console.log('Space key pressed: Toggling play/pause');
  72.  
  73. setTimeout(() => {
  74. playButton.blur();
  75. document.activeElement.blur();
  76. window.scrollTo(0, scrollY); // Restore scroll position
  77. }, 1);
  78. } else {
  79. console.log('Play button not found.');
  80. }
  81. }
  82. }
  83.  
  84. // Add event listener for keydown
  85. document.addEventListener('keydown', togglePlayPause);
  86.  
  87.  
  88. function seekBack(event) {
  89. if (event.code === 'ArrowLeft') {
  90. event.preventDefault();
  91. event.stopPropagation(); // Prevent interference with other key events
  92. let rewindButton = document.querySelector('button.vjs-seek-button.skip-back');
  93. if (rewindButton) {
  94. rewindButton.click();
  95. console.log('Left Arrow pressed: Seeking back 10 seconds');
  96. } else {
  97. console.log('Seek back button not found.');
  98. }
  99. }
  100. }
  101.  
  102. document.addEventListener('keydown', seekBack);
  103.  
  104. function seekForward(event) {
  105. if (event.code === 'ArrowRight') {
  106. event.preventDefault();
  107. event.stopPropagation(); // Prevent interference with other key events
  108. let rewindForward = document.querySelector('button.vjs-seek-button.skip-forward');
  109. if (rewindForward) {
  110. rewindForward.click();
  111. console.log('Right Arrow pressed: Seeking frontend 10 seconds');
  112. } else {
  113. console.log('Seek forward button not found.');
  114. }
  115. }
  116. }
  117.  
  118. document.addEventListener('keydown', seekForward);
  119.  
  120.  
  121.  
  122.  
  123. })();

QingJ © 2025

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