iPeng6 / docsify-sidebar-collapse

a docsify plugin, support sidebar catalog expand and collapse
MIT License
176 stars 37 forks source link

打开文件名带%20的文件侧栏会立刻收缩 #12

Closed Ares-X closed 3 years ago

Ares-X commented 4 years ago

https://github.com/iPeng6/docsify-sidebar-collapse/issues/11#issuecomment-709290121

其实是这个issue里的问题,打开文件名无空格的文件左侧侧边栏会保持原来的状态,但是如果访问了路径中有空格的文件,侧栏会立刻收缩需要重新打开

样本:

无空格

有空格

_sidebar.md 路径提前进行过url编码

  - ActiveMQ
    - [ActiveMQ物理路径泄漏漏洞](./VulWiki/Web安全/ActiveMQ/ActiveMQ物理路径泄漏漏洞.md)
    - [(CVE-2015-1830)ActiveMQ 路径遍历导致未经身份验证的rce](./VulWiki/Web安全/ActiveMQ/(CVE-2015-1830)ActiveMQ%20路径遍历导致未经身份验证的rce.md)
iPeng6 commented 4 years ago

在body下面加个脚本可以临时解决你的需求

<script>
      document.addEventListener('DOMContentLoaded', () => {
        const targetNode = document.querySelector('.sidebar-nav')
        const config = { attributes: false, childList: true, subtree: true }
        const observer = new MutationObserver(() => {
          let dom = document.querySelector(`[href="${decodeURIComponent(location.hash).replace(/ /gi, '%20')}"]`)

          while (dom && dom.classList && dom.className !== 'sidebar-nav') {
            dom.classList.add('open')
            dom = dom.parentNode
          }
        })
        observer.observe(targetNode, config)
      })
    </script>
Ares-X commented 4 years ago

这个算bug吧-- 感觉在源码里修复一下用着比较方便