您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2020/11/17 上午2:14:37
当前为
// ==UserScript== // @name 学城 PPT // @namespace Violentmonkey Scripts // @match https://km.sankuai.com/page/* // @grant none // @version 1.0 // @author - // @description 2020/11/17 上午2:14:37 // ==/UserScript== (async () => { console.log(window) // window.addEventListener('load', async () => { const loadScript = (src) => { const s = document.createElement('script') s.src = src s.async = 'async' s.defer = 'defer' document.head.appendChild(s) return new Promise(resolve => { s.onload = resolve }) } const htmlEscape = string => string .replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(/</g, '<') .replace(/>/g, '>'); await loadScript('https://unpkg.sankuai.com/package/slider-doc/dist/slider-doc.min.js') console.log(window.SliderDoc) const ops = document.querySelector('.doc-ops') // ops.prepend( // ) if (typeof window.SliderDoc === 'function') { window.SliderDoc( { title: { selector: '.ct-editor-wrapper .ct-title-wrapper .ct-title-p', global: true, type: 'css' }, createUser: { selector: '.ct-editor-wrapper .ct-doc-info .ct-user-name', global: true, type: 'css' }, lvl0: '.ct-editor-wrapper .pm-body-wrapper h1', lvl1: '.ct-editor-wrapper .pm-body-wrapper h2', lvl2: '.ct-editor-wrapper .pm-body-wrapper h3', lvl3: '.ct-editor-wrapper .pm-body-wrapper h4', lvl4: '.ct-editor-wrapper .pm-body-wrapper h5', text: '.ct-editor-wrapper .pm-body-wrapper p, .ct-editor-wrapper .pm-body-wrapper .ct-code .CodeMirror-code, .ct-editor-wrapper .pm-body-wrapper ul, .ct-editor-wrapper .pm-body-wrapper ol, .ct-editor-wrapper .pm-body-wrapper li' }, { renderers: [ (vNode, ctx, render) => { const domNode = vNode.domNode if (domNode && domNode.querySelectorAll) { domNode.querySelectorAll('.ct-code').forEach((node) => { const codeBase = node.querySelector('.CodeMirror-code') // const container = document.createElement('section') container.innerHTML = `<pre><code data-trim data-noescape>${htmlEscape(codeBase.textContent)}</code></pre>` node.replaceWith(container) }) } return render() }, (vNode, ctx, render) => { const domNode = vNode.domNode if (domNode.classList.contains('CodeMirror-code')) { return `<pre><code data-trim data-noescape>${htmlEscape(vNode.value)}</code></pre>` } return render() } ] // renderSectionAttrs: (node, ctx) => { // return '' // } } ); } })()