Seer Helper

赛尔号启航助手,只为重新启航,寻找我们最初的回忆与感动……

  1. // ==UserScript==
  2. // @name Seer Helper
  3. // @namespace www.61.com
  4. // @version 1.2.2
  5. // @description 赛尔号启航助手,只为重新启航,寻找我们最初的回忆与感动……
  6. // @author songbaicheng
  7. // @match https://s.61.com/*
  8. // @icon https://gitee.com/songbaicheng/tampermonkey-script/raw/master/www.61.com/seer/seerHelper-logo.jpg
  9. // @grant none
  10. // @run-at document-end
  11. // @homepageURL https://gitee.com/songbaicheng/tampermonkey-script
  12. // @supportURL https://gitee.com/songbaicheng/tampermonkey-script/issues
  13. // @require https://update.greasyfork.org/scripts/491235/1351491/Seer%20Timer%20Helper.js
  14. // @license MIT
  15. // ==/UserScript==
  16. (function () {
  17. 'use strict';
  18. // Your code here...
  19. console.log('Seer Helper started...');
  20. // 全局常量
  21. /**
  22. * 面板打开宽度
  23. */
  24. var PANEL_WIDTH = '100px';
  25. /**
  26. * 面板关闭宽度
  27. */
  28. var PANEL_SHRINK_WIDTH = '50px';
  29. // 全局变量
  30. /**
  31. * 是否是面板缩小状态
  32. */
  33. var isPanelShrink = false;
  34. // 1 创建样式
  35. // 1.1 创建面板 div 容器
  36. var containerDiv = document.createElement("div");
  37. containerDiv.style.position = "fixed";
  38. containerDiv.style.zIndex = '999990';
  39. // 1.2 创建面板样式
  40. var panel = document.createElement('div');
  41. panel.style.position = 'fixed';
  42. panel.style.top = '18%';
  43. panel.style.left = '9%';
  44. panel.style.backgroundColor = 'rgba(255, 255, 255, 0.8)'; // 半透明背景色
  45. panel.style.padding = '0px';
  46. panel.style.borderRadius = '10px'; // 圆角
  47. panel.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.3)'; // 阴影效果
  48. panel.style.transition = 'all 0.3s';
  49. panel.style.width = PANEL_SHRINK_WIDTH; // 初始宽度
  50. panel.style.overflow = 'hidden';
  51. // 1.3 创建面板切换按钮
  52. var togglePanelButton = document.createElement('button');
  53. togglePanelButton.innerHTML = '展开';
  54. togglePanelButton.style.width = '100%';
  55. togglePanelButton.style.padding = '8px';
  56. togglePanelButton.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; // 半透明背景色
  57. togglePanelButton.style.color = '#fff';
  58. togglePanelButton.style.cursor = 'pointer';
  59. togglePanelButton.style.border = 'none';
  60. togglePanelButton.style.borderRadius = '5px'; // 圆角
  61. togglePanelButton.style.boxShadow = '0 2px 5px rgba(0, 0, 0, 0.3)'; // 阴影效果
  62. // 1.4 创建全屏按钮
  63. var fullscreenButton = document.createElement('button');
  64. fullscreenButton.innerHTML = '全屏';
  65. fullscreenButton.style.width = '100%';
  66. fullscreenButton.style.padding = '8px';
  67. fullscreenButton.style.backgroundColor = 'rgba(0, 0, 0, 0.6)'; // 半透明背景色
  68. fullscreenButton.style.color = '#fff';
  69. fullscreenButton.style.cursor = 'pointer';
  70. fullscreenButton.style.border = 'none';
  71. fullscreenButton.style.borderRadius = '5px'; // 圆角
  72. fullscreenButton.style.boxShadow = '0 2px 5px rgba(0, 0, 0, 0.3)'; // 阴影效果
  73. fullscreenButton.style.display = 'none';
  74. // 2 按钮事件
  75. // 2.1 全局事件
  76. // 2.1.1 提示文本方法
  77. function showText(txtMsg) {
  78. var _a;
  79. try {
  80. ((_a = document.querySelector("iframe")) === null || _a === void 0 ? void 0 : _a.contentWindow).MFC.bubbleAlert.showAlert(txtMsg);
  81. }
  82. catch (e) {
  83. window.MFC.bubbleAlert.showAlert(txtMsg);
  84. }
  85. }
  86. // 2.2 面板切换事件
  87. // 2.2.1 切换面板展开/收缩状态
  88. function togglePanelSize() {
  89. if (isPanelShrink) {
  90. // 收缩面板
  91. panel.style.width = PANEL_SHRINK_WIDTH;
  92. togglePanelButton.innerHTML = '展开';
  93. // 隐藏全屏按钮
  94. fullscreenButton.style.display = 'none';
  95. isPanelShrink = false;
  96. showText("面板已缩放");
  97. }
  98. else {
  99. // 展开面板
  100. panel.style.width = PANEL_WIDTH;
  101. togglePanelButton.innerHTML = '收缩';
  102. // 显示全屏按钮
  103. fullscreenButton.style.display = 'block';
  104. isPanelShrink = true;
  105. showText("面板已展开");
  106. }
  107. }
  108. // 2.3 网页全屏事件
  109. // 2.3.1 切换全屏状态
  110. function toggleFullscreen() {
  111. if (document.fullscreenElement ||
  112. document.webkitFullscreenElement ||
  113. document.mozFullScreenElement ||
  114. document.msFullscreenElement) {
  115. exitFullscreen();
  116. fullscreenButton.innerHTML = '全屏'; // 全屏状态下修改按钮文本为 "全屏"
  117. showText("全屏已退出");
  118. }
  119. else {
  120. enterFullscreen();
  121. fullscreenButton.innerHTML = '退出全屏'; // 非全屏状态下修改按钮文本为 "收缩"
  122. showText("全屏已进入");
  123. }
  124. }
  125. // 2.3.2 进入全屏模式
  126. function enterFullscreen() {
  127. var documentElement = document.documentElement;
  128. if (documentElement.requestFullscreen) {
  129. documentElement.requestFullscreen();
  130. }
  131. else if (documentElement.webkitRequestFullscreen) {
  132. documentElement.webkitRequestFullscreen();
  133. }
  134. else if (documentElement.mozRequestFullScreen) {
  135. documentElement.mozRequestFullScreen();
  136. }
  137. else if (documentElement.msRequestFullscreen) {
  138. documentElement.msRequestFullscreen();
  139. }
  140. console.log('进入全屏模式');
  141. }
  142. // 2.3.3 退出全屏模式
  143. function exitFullscreen() {
  144. var documentElement = document;
  145. if (documentElement.exitFullscreen) {
  146. documentElement.exitFullscreen();
  147. }
  148. else if (documentElement.webkitExitFullscreen) {
  149. documentElement.webkitExitFullscreen();
  150. }
  151. else if (documentElement.mozCancelFullScreen) {
  152. documentElement.mozCancelFullScreen();
  153. }
  154. else if (documentElement.msExitFullscreen) {
  155. documentElement.msExitFullscreen();
  156. }
  157. console.log('退出全屏模式');
  158. }
  159. // 3 最终组织面板
  160. // 3.1 为按钮依次添加添加点击事件
  161. // 3.1.1 添加面板大小切换按钮点击事件
  162. togglePanelButton.addEventListener('click', togglePanelSize);
  163. panel.appendChild(togglePanelButton);
  164. // 3.1.2 添加退出全屏按钮点击事件
  165. fullscreenButton.addEventListener('click', toggleFullscreen);
  166. panel.appendChild(fullscreenButton);
  167. // 3.2 将面板添加到页面中
  168. containerDiv.appendChild(panel);
  169. var frontPage = document.getElementsByTagName("html")[0];
  170. frontPage.appendChild(containerDiv);
  171. })();