您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
抖音实现CC+1功能
当前为
- // ==UserScript==
- // @name DouyinPlusOne
- // @namespace Cedros
- // @version 2.2
- // @description 抖音实现CC+1功能
- // @author Cedros
- // @match *://live.douyin.com/*
- // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- ondblclick = function(event){
- let txt = GetMouseText(event)
- SendMessage(txt)
- }
- function GetDanmuElement(){
- return document.getElementsByClassName("xgplayer-danmu danmu")[0]
- }
- function GetMouseText(event){
- let myDiv = GetDanmuElement()
- for (let i = 0; i < myDiv.children.length; i++) {
- let child = myDiv.children[i];
- if(isInDiv(event, child)){
- return GetText(child)
- }
- }
- return null
- }
- function GetText(div){
- let txt = div.querySelector('.webcast-chatroom___content-with-emoji-text').textContent
- if(txt) return txt
- return null
- }
- function GetTop(e){
- var offset = e.offsetTop
- if(e.offsetParent!=null) offset += GetTop(e.offsetParent)
- return offset
- }
- function GetLeft(e){
- var offset = e.offsetLeft
- if(e.offsetParent!=null) offset += GetLeft(e.offsetParent)
- return offset
- }
- function GetTranslateX(div){
- let transform = window.getComputedStyle(div).getPropertyValue("transform")
- let matrix = new DOMMatrixReadOnly(transform)
- let translateX = matrix.m41;
- return translateX
- }
- function isInDiv(event,div){
- var x=event.clientX
- var y=event.clientY
- var divx1 = GetLeft(div) + GetTranslateX(div)
- var divy1 = GetTop(div)
- var divx2 = GetLeft(div) + div.offsetWidth + GetTranslateX(div)
- var divy2 = GetTop(div) + div.offsetHeight
- return !(x < divx1 || x > divx2 || y < divy1 || y > divy2)
- }
- function setNativeValue(element, value) {
- let valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
- let prototype = Object.getPrototypeOf(element);
- let prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;
- if (valueSetter && valueSetter !== prototypeValueSetter) {
- prototypeValueSetter.call(element, value);
- } else {
- valueSetter.call(element, value);
- }
- }
- function SendMessage(msg){
- if(msg == null) return
- //document.querySelector('.webcast-chatroom___textarea').value = msg;
- let txtarea = document.querySelector('.webcast-chatroom___textarea');
- /*let evt = document.createEvent('HTMLEvents');
- evt.initEvent('input', true, true);
- txtarea.focus()
- txtarea.dispatchEvent(evt);
- txtarea.value = msg;*/
- setNativeValue(txtarea,msg);
- txtarea.dispatchEvent(new Event('input', { bubbles: true }));
- let send_btn = document.querySelector('.webcast-chatroom___send-btn');
- //send_btn.click()
- }
- })();