ScriptsForMsDocToc

MSDN TOC Enhance

От 27.09.2022. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         ScriptsForMsDocToc
// @namespace    mailto:[email protected]
// @version      0.7.0
// @license      MIT
// @description  MSDN TOC Enhance
// @description:zh 微软文档目录功能新增
// @author       fish-404
// @match        *://docs.microsoft.com/*
// @match        *://learn.microsoft.com/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    setTocContainerSticky();
    clickShowMoreBtn();
    mvSave2CollectionBtn();
})();

function logError(exception, customMsg) {
    console.error(customMsg);
    console.error(exception.name);
    console.error(exception.message);
}

function setTocContainerSticky() {
    try {
        document.getElementById("affixed-right-container").setAttribute("style", "position: sticky; top: 3vh");
    }
    catch (e) {
        logError(e, "Error: set to ccontainer sticky failed!");
    }
}

function clickShowMoreBtn() {
    try {
        document.querySelector("button[data-bi-name='show-more-btn']").click();
    }
    catch (e) {
        logError(e, "Error: click show more button failed!");
    }

    try {
        document.querySelector('#right-rail-in-this-article-list .is-expanded a').setAttribute("style", "outline: 0");
    }
    catch (e) {
        logError(e, "Error: hide dash outline failed!");
    }
}

function mvSave2CollectionBtn() {
    try {
        document.querySelector('div[data-bi-name="right-column"] article div').insertAdjacentElement('beforeend', document.querySelector('button[data-bi-name="collection"]'));
    }
    catch (e) {
        logError(e, "Error: move save to collection button failed!");
    }
}