appendShadow

💜

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// jshint esversion: 6
// eslint-disable-next-line
// ==UserScript==
// @name         appendShadow
// @namespace    https://dniness.github.io/
// @version      0.03
// @description  💜
// @author       Dniness
// @match        *://*/*
// @icon         data:image/svg+xml,<svg width='64' height='64' fill='none' xmlns='http://www.w3.org/2000/svg'><circle cx='32' cy='32' r='32' fill='darkgray'/></svg>
// @grant        none
// @run-at       document-body
// @license      MPL2.0
// ==/UserScript==

 

(document.appendShadow=(func,name)=>{
    'use strict';
    const mode = name?'open':'closed';
    [,name,func]=(func+'').match(/([^ =]+)[^{]+\{(.+)\}$/);
    name = name.replace(/([A-Z])/g,"-$1").toLowerCase();
    customElements.define(name, class extends HTMLElement {
        constructor() {
            super();
            new Function(func).call(this.attachShadow({mode}));
        }
    })
    document.body.appendChild(document.createElement(name));
})(exampleMonkeyShadow=>{this.appendChild(document.createElement('h2'))});