您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
CoCo点击方式添加控件!
当前为
- /*
- * ============================================================================== *
- ******************************* CoCoClick v1.0.2 *******************************
- ****************** Copyright (C) 2023 xiaohong2022 *****************
- * ============================================================================== *
- */
- // ==UserScript==
- // @name CoCoClick
- // @namespace http://tampermonkey.net/
- // @version 1.0.2
- // @description CoCo点击方式添加控件!
- // @author 小宏XeLa
- // @match *://coco.codemao.cn/editor/*
- // @icon https://coco.codemao.cn/favicon.ico
- // @grant GM_addStyle
- // @license GPL-3.0
- // @run-at document-start
- // ==/UserScript==
- (function () {
- "use strict";
- var dataTransfer = {
- setData(n, v) {
- this[n] = v;
- },
- getData(n) {
- return this[n];
- }
- };
- setInterval(() => {
- document.querySelectorAll(`*[class*="WidgetList_widgetItem"]`).forEach((e) => {
- if (e.cococlick) return;
- e.cococlick = true;
- e.draggable = false;
- e.style.cursor = "pointer";
- e.addEventListener("click", function () {
- var sen = document.querySelector(`*[class*="PreviewArea_main"]`);
- var x = sen.offsetLeft + sen.offsetWidth / 2;
- var y = sen.offsetTop + sen.offsetHeight / 2;
- var keys = Object.keys(e);
- var key = keys.find((e) => e.startsWith("__reactEventHandlers"));
- e[key].onDragStart({
- target: e,
- dataTransfer,
- persist:() => true,
- clientX: x,
- clientY: y,
- x: x + 100,
- y
- });
- var stage = document.querySelector(`*[class*="PreviewArea_stage"]`);
- stage[key].onDragOver({ preventDefault() { } });
- stage[key].onDrop({
- dataTransfer,
- persist:() => true,
- clientX: x + 142,
- clientY: y - 3,
- x: x + 100,
- y
- });
- if (e.dataset.widgetType == "BRUSH_WIDGET" || e.dataset.widgetType == "ACTOR_WIDGET") {
- document.querySelectorAll(`*[data-widget-type="CANVAS_WIDGET"][id*="CANVAS_WIDGET"]`).forEach((en, _, array) => {
- function click(ew) {
- en[key].onDragEnter({
- dataTransfer,
- persist: () => true,
- stopPropagation: () => true,
- });
- stage[key].onDragOver({ preventDefault() { } });
- en[key].onDrop({
- dataTransfer,
- persist: () => true,
- stopPropagation: () => true,
- clientX: ew.clientX,
- clientY: ew.clientY,
- x: ew.x,
- y: ew.y
- });
- stage[key].onDrop({
- dataTransfer,
- persist: () => true,
- });
- array.forEach(e => e.removeEventListener("click", e.cococlickfunc, false));
- e[key].onDragEnd();
- }
- en.cococlickfunc = click;
- en.addEventListener("click", click, false);
- });
- } else {
- e[key].onDragEnd();
- }
- });
- });
- }, 100);
- })();