关于这个问题,可以使用插件管理的功能。
插件代码:
- <div>(() => {
- <span style="color: #0000ff;">const</span> <span style="color: #008080;">PLUGIN_NAME</span> = <span style="color: #a31515;">'隐藏草稿态重置按钮'</span>;
- <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>;
- <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>;
- <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);
- <span style="color: #0000ff;">const</span> ensureStyle = () => {
- <span style="color: #0000ff;">if</span> (document.getElementById(<span style="color: #008080;">STYLE_ID</span>)) <span style="color: #0000ff;">return</span>;
- <span style="color: #0000ff;">const</span> style = document.createElement(<span style="color: #a31515;">'style'</span>);
- style.id = <span style="color: #008080;">STYLE_ID</span>;
- style.textContent = <span style="color: #a31515;">`</span>
- <span style="color: #a31515;"> #pageResetButton,</span>
- <span style="color: #a31515;"> #pageResetButton[disabled] {</span>
- <span style="color: #a31515;"> display: none !important;</span>
- <span style="color: #a31515;"> visibility: hidden !important;</span>
- <span style="color: #a31515;"> pointer-events: none !important;</span>
- <span style="color: #a31515;"> }</span>
- <span style="color: #a31515;"> `</span>;
- document.head.appendChild(style);
- };
- <span style="color: #0000ff;">const</span> hideResetButton = () => {
- <span style="color: #0000ff;">if</span> (!isEditPage()) <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;
- ensureStyle();
- <span style="color: #0000ff;">const</span> button = document.querySelector(<span style="color: #a31515;">'#pageResetButton'</span>);
- <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>;
- button.style.setProperty(<span style="color: #a31515;">'display'</span>, <span style="color: #a31515;">'none'</span>, <span style="color: #a31515;">'important'</span>);
- button.style.setProperty(<span style="color: #a31515;">'visibility'</span>, <span style="color: #a31515;">'hidden'</span>, <span style="color: #a31515;">'important'</span>);
- button.style.setProperty(<span style="color: #a31515;">'pointer-events'</span>, <span style="color: #a31515;">'none'</span>, <span style="color: #a31515;">'important'</span>);
- button.setAttribute(<span style="color: #a31515;">'aria-hidden'</span>, <span style="color: #a31515;">'true'</span>);
- button.setAttribute(<span style="color: #a31515;">'tabindex'</span>, <span style="color: #a31515;">'-1'</span>);
- <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
- };
- <span style="color: #0000ff;">const</span> apply = () => {
- <span style="color: #0000ff;">const</span> hidden = hideResetButton();
- <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>);
- };
- <span style="color: #0000ff;">const</span> scheduleApply = () => {
- apply();
- setTimeout(apply, <span style="color: #098658;">200</span>);
- setTimeout(apply, <span style="color: #098658;">800</span>);
- setTimeout(apply, <span style="color: #098658;">2000</span>);
- setTimeout(apply, <span style="color: #098658;">5000</span>);
- };
- <span style="color: #0000ff;">const</span> observer = <span style="color: #0000ff;">new</span> <span style="color: #008080;">MutationObserver</span>(() => {
- hideResetButton();
- });
- <span style="color: #0000ff;">if</span> (document.readyState === <span style="color: #a31515;">'loading'</span>) {
- document.addEventListener(<span style="color: #a31515;">'DOMContentLoaded'</span>, scheduleApply, { once: <span style="color: #0000ff;">true</span> });
- } <span style="color: #0000ff;">else</span> {
- scheduleApply();
- }
- observer.observe(document.documentElement, { childList: <span style="color: #0000ff;">true</span>, subtree: <span style="color: #0000ff;">true</span> });
- window.addEventListener(<span style="color: #a31515;">'load'</span>, scheduleApply);
- window.addEventListener(<span style="color: #a31515;">'hashchange'</span>, scheduleApply);
- window.addEventListener(<span style="color: #a31515;">'popstate'</span>, scheduleApply);
- document.addEventListener(<span style="color: #a31515;">'visibilitychange'</span>, () => {
- <span style="color: #0000ff;">if</span> (!document.hidden) scheduleApply();
- });
- })();</div>
复制代码
|