[仅适用于手机端] 一个在锁定编辑旁边可以隐藏一些图标的 js

默认勾选

image.png

取消勾选后

image.png

目前还有一点问题

image.png

// 插入开关功能
function insertSwitchBeforeButton() {
  // 循环查找目标按钮,直到找到为止
  function findAndInsert() {
    // 尝试查找目标按钮,仅在符合指定选择器时插入
    let targetButton = document.querySelector('#editor > div.protyle-breadcrumb > button.protyle-breadcrumb__icon.ariaLabel');
    let toolbar = document.querySelector('.toolbar.toolbar--border'); // 查找需要控制的工具栏

    // 查找需要控制的三个按钮
    let button4 = document.querySelector('#editor > div.protyle-breadcrumb > button:nth-child(4)');
    let button5 = document.querySelector('#editor > div.protyle-breadcrumb > button:nth-child(5)');
    let button6 = document.querySelector('#editor > div.protyle-breadcrumb > button:nth-child(6)');
    let css1 = document.querySelector('#editor > div.protyle-content.protyle-content--transition > div.protyle-top');


    if (targetButton && toolbar) {
      // 如果找到了目标按钮和工具栏,且符合选择器
      let switchElement = document.createElement('input');
      switchElement.type = 'checkbox'; // 创建一个复选框作为开关
      switchElement.style.marginRight = '8px'; // 添加样式,调整位置
      switchElement.checked = true; // 默认是选中状态,工具栏显示

      // 开关的点击事件,用来控制工具栏和按钮的显示和隐藏
      switchElement.addEventListener('change', () => {
        if (switchElement.checked) {
          toolbar.style.display = ''; // 显示工具栏
          button4.style.display = '';
          button5.style.display = '';
          button6.style.display = '';
          css1.style.display = '';
          console.log("工具栏已显示");
        } else {
          toolbar.style.display = 'none'; // 隐藏工具栏
          button4.style.display = 'none';
          button5.style.display = 'none';
          button6.style.display = 'none';
          css1.style.display = 'none';
          console.log("工具栏已隐藏");
        }
      });

      // 插入开关到按钮前面
      targetButton.parentNode.insertBefore(switchElement, targetButton);
      console.log("开关已成功插入到目标按钮前面");

      // 停止查找
      clearInterval(searchInterval);
    } else {
      console.warn("目标按钮或工具栏未找到,继续尝试...");
    }
  }

  // 每隔 500 毫秒查找一次目标按钮和工具栏
  let searchInterval = setInterval(findAndInsert, 500);

  // 如果超过 10 秒仍未找到,停止查找并提示
  setTimeout(() => {
    clearInterval(searchInterval);
    console.error("超过 10 秒仍未找到目标按钮或工具栏,请检查选择器或页面是否正确加载");
  }, 10000); // 10 秒后停止查找
}

// 启动插入开关功能
insertSwitchBeforeButton();
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23296 引用 • 94049 回帖 • 2 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    197 引用 • 540 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 反馈

    Communication channel for makers and users.

    123 引用 • 915 回帖 • 248 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 777 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    288 引用 • 735 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    93 引用 • 899 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 534 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1739 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 491 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 109 关注
  • danl
    149 关注
  • abitmean

    有点意思就行了

    32 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 33 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 91 关注
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1395 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 356 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    138 引用 • 203 回帖
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖 • 1 关注
  • sts
    2 引用 • 2 回帖 • 198 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 464 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    492 引用 • 927 回帖
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 653 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 75 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖