Add Comic Sans MS to Google Docs/Slides (More Fonts + Search)

Adds Comic Sans MS to Google Docs/Slides, visible in "More Fonts" and when searched

当前为 2024-09-12 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Add Comic Sans MS to Google Docs/Slides (More Fonts + Search)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Adds Comic Sans MS to Google Docs/Slides, visible in "More Fonts" and when searched
// @author       YourName
// @match        https://docs.google.com/document/d/*
// @match        https://docs.google.com/presentation/d/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Function to inject Comic Sans MS into "More Fonts" menu
    function injectComicSansInMoreFonts() {
        let observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                // Check if "More Fonts" menu exists
                let moreFontsDialog = document.querySelector('.docs-fontmenu ul');

                if (moreFontsDialog && !document.querySelector('.comic-sans-more-font-option')) {
                    // Create a new font option for Comic Sans MS
                    let newFontOption = document.createElement('div');
                    newFontOption.classList.add('goog-menuitem', 'goog-menuitem-content', 'comic-sans-more-font-option');
                    newFontOption.setAttribute('role', 'menuitem');
                    newFontOption.setAttribute('data-font', 'Comic Sans MS');
                    newFontOption.style.fontFamily = '"Comic Sans MS", cursive, sans-serif';
                    newFontOption.textContent = 'Comic Sans MS';

                    // Append the Comic Sans MS font to the "More Fonts" menu
                    moreFontsDialog.appendChild(newFontOption);

                    // Event listener to apply the font when selected from "More Fonts"
                    newFontOption.addEventListener('click', function() {
                        document.execCommand('fontName', false, '"Comic Sans MS"');
                    });
                }
            });
        });

        observer.observe(document.body, { childList: true, subtree: true });
    }

    // Function to detect typing in the font search box and load Comic Sans MS
    function addComicSansOnSearch() {
        let searchObserver = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                let fontSearchBox = document.querySelector('[aria-label="Font"]');

                if (fontSearchBox && !document.querySelector('.comic-sans-searched-option')) {
                    // Add event listener to detect when the user types into the font search box
                    fontSearchBox.addEventListener('input', function(e) {
                        if (e.target.value.toLowerCase() === 'comic sans ms') {
                            document.execCommand('fontName', false, '"Comic Sans MS"');
                        }
                    });
                }
            });
        });

        searchObserver.observe(document.body, { childList: true, subtree: true });
    }

    // Run the function to add Comic Sans MS after a delay to ensure the page has loaded
    window.setTimeout(injectComicSansInMoreFonts, 2000);
    window.setTimeout(addComicSansOnSearch, 2000);

})();