问答 查看内容
返回列表

如何隐藏草稿态“重置”按钮

18 1
发表于 昨天 16:05 | 查看全部 阅读模式
如何隐藏草稿态“重置”按钮

截图202604131605184861.png

评论1

观小豪楼主Lv.1 发表于 昨天 16:05 | 查看全部
关于这个问题,可以使用插件管理的功能。

插件代码:


  1. <div>(() => {
  2.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">PLUGIN_NAME</span> = <span style="color: #a31515;">'隐藏草稿态重置按钮'</span>;
  3.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">STYLE_ID</span> = <span style="color: #a31515;">'gd-hide-page-reset-button-plugin-style'</span>;
  4.   <span style="color: #0000ff;">const</span> <span style="color: #008080;">EDIT_PAGE_PATTERN</span> = /<span style="color: #cd3131;">\</span>/page<span style="color: #cd3131;">\</span>/[^/?<span style="color: #cd3131;">#</span>]+<span style="color: #cd3131;">\</span><span style="color: #800000;">/edit(?:[?#].*)?$/</span>;

  5.   <span style="color: #0000ff;">const</span> isEditPage = () => <span style="color: #008080;">EDIT_PAGE_PATTERN</span>.test(window.location.pathname + window.location.search + window.location.hash);

  6.   <span style="color: #0000ff;">const</span> ensureStyle = () => {
  7.     <span style="color: #0000ff;">if</span> (document.getElementById(<span style="color: #008080;">STYLE_ID</span>)) <span style="color: #0000ff;">return</span>;
  8.     <span style="color: #0000ff;">const</span> style = document.createElement(<span style="color: #a31515;">'style'</span>);
  9.     style.id = <span style="color: #008080;">STYLE_ID</span>;
  10.     style.textContent = <span style="color: #a31515;">`</span>
  11. <span style="color: #a31515;">      #pageResetButton,</span>
  12. <span style="color: #a31515;">      #pageResetButton[disabled] {</span>
  13. <span style="color: #a31515;">        display: none !important;</span>
  14. <span style="color: #a31515;">        visibility: hidden !important;</span>
  15. <span style="color: #a31515;">        pointer-events: none !important;</span>
  16. <span style="color: #a31515;">      }</span>
  17. <span style="color: #a31515;">    `</span>;
  18.     document.head.appendChild(style);
  19.   };

  20.   <span style="color: #0000ff;">const</span> hideResetButton = () => {
  21.     <span style="color: #0000ff;">if</span> (!isEditPage()) <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;
  22.     ensureStyle();
  23.     <span style="color: #0000ff;">const</span> button = document.querySelector(<span style="color: #a31515;">'#pageResetButton'</span>);
  24.     <span style="color: #0000ff;">if</span> (!(button <span style="color: #0000ff;">instanceof</span> <span style="color: #008080;">HTMLElement</span>)) <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;
  25.     button.style.setProperty(<span style="color: #a31515;">'display'</span>, <span style="color: #a31515;">'none'</span>, <span style="color: #a31515;">'important'</span>);
  26.     button.style.setProperty(<span style="color: #a31515;">'visibility'</span>, <span style="color: #a31515;">'hidden'</span>, <span style="color: #a31515;">'important'</span>);
  27.     button.style.setProperty(<span style="color: #a31515;">'pointer-events'</span>, <span style="color: #a31515;">'none'</span>, <span style="color: #a31515;">'important'</span>);
  28.     button.setAttribute(<span style="color: #a31515;">'aria-hidden'</span>, <span style="color: #a31515;">'true'</span>);
  29.     button.setAttribute(<span style="color: #a31515;">'tabindex'</span>, <span style="color: #a31515;">'-1'</span>);
  30.     <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
  31.   };

  32.   <span style="color: #0000ff;">const</span> apply = () => {
  33.     <span style="color: #0000ff;">const</span> hidden = hideResetButton();
  34.     <span style="color: #0000ff;">if</span> (hidden) console.log(<span style="color: #a31515;">`[</span>${<span style="color: #008080;">PLUGIN_NAME</span>}<span style="color: #a31515;">] #pageResetButton hidden`</span>);
  35.   };

  36.   <span style="color: #0000ff;">const</span> scheduleApply = () => {
  37.     apply();
  38.     setTimeout(apply, <span style="color: #098658;">200</span>);
  39.     setTimeout(apply, <span style="color: #098658;">800</span>);
  40.     setTimeout(apply, <span style="color: #098658;">2000</span>);
  41.     setTimeout(apply, <span style="color: #098658;">5000</span>);
  42.   };

  43.   <span style="color: #0000ff;">const</span> observer = <span style="color: #0000ff;">new</span> <span style="color: #008080;">MutationObserver</span>(() => {
  44.     hideResetButton();
  45.   });

  46.   <span style="color: #0000ff;">if</span> (document.readyState === <span style="color: #a31515;">'loading'</span>) {
  47.     document.addEventListener(<span style="color: #a31515;">'DOMContentLoaded'</span>, scheduleApply, { once: <span style="color: #0000ff;">true</span> });
  48.   } <span style="color: #0000ff;">else</span> {
  49.     scheduleApply();
  50.   }

  51.   observer.observe(document.documentElement, { childList: <span style="color: #0000ff;">true</span>, subtree: <span style="color: #0000ff;">true</span> });
  52.   window.addEventListener(<span style="color: #a31515;">'load'</span>, scheduleApply);
  53.   window.addEventListener(<span style="color: #a31515;">'hashchange'</span>, scheduleApply);
  54.   window.addEventListener(<span style="color: #a31515;">'popstate'</span>, scheduleApply);
  55.   document.addEventListener(<span style="color: #a31515;">'visibilitychange'</span>, () => {
  56.     <span style="color: #0000ff;">if</span> (!document.hidden) scheduleApply();
  57.   });
  58. })();</div>
复制代码




回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表