您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
3cx auto-join.
// ==UserScript== // @name 3cx auto-join // @namespace cwrau.info // @license unlicense // @version 1.0.3 // @description 3cx auto-join. // @author https://github.com/cwrau // @match https://3cx.*.*/meet/* // @icon https://www.google.com/s2/favicons?sz=64&domain=teuto.net // ==/UserScript== 'use strict'; const observers = []; function waitForElement(selector, element = document.body) { return new Promise(resolve => { const found = element.querySelector(selector); if (found) { return resolve(found); } const observer = new MutationObserver(mutations => { const found = element.querySelector(selector); if (found) { observers.forEach(o => o.disconnect()); resolve(found); } mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.shadowRoot) { waitForElement(selector, node.shadowRoot).then(e => { observers.forEach(o => o.disconnect()); resolve(e); }); } }); }); }); observer.observe(element, {childList: true, subtree: true}); observers.push(observer); element.querySelectorAll('*').forEach(e => { if (e.shadowRoot) { waitForElement(selector, e.shadowRoot).then(e => { observers.forEach(o => o.disconnect()); resolve(e); }); } }); }); } waitForElement('.join-button').then((elm) => { setTimeout(() => { elm.click(); }, 1000); });