您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动选中‘外资’、‘机构’、‘家人’席位
// ==UserScript== // @name 东方财富-期货-工具 // @namespace http://tuite.fun // @version 1.2 // @description 自动选中‘外资’、‘机构’、‘家人’席位 // @author tuite // @match https://qhweb.eastmoney.com/lhb/pzjcc/* // @grant none // ==/UserScript== (function () { 'use strict'; /** * 席位名称 * 家人:平安、东财、徽商 * 外资:瑞银、摩根、乾坤 * 机构:国君、海通、永安、中信、东证 */ let xw = { wz: ['乾坤期货(代客)', '摩根大通(代客)', '瑞银期货(代客)',], jg: ['国泰君安(代客)', '海通期货(代客)', '永安期货(代客)', '中信期货(代客)', '东证期货(代客)'], jr: ['平安期货(代客)', '东方财富(代客)', '徽商期货(代客)', '中信建投(代客)',] } /** * 选择席位 * @param xwName * @returns {Promise<unknown>} */ let selectXw = (xwName) => { return new Promise((resolve, reject) => { document.querySelector('.el-select').click(); // 假设选项需要一定时间加载,使用 setTimeout 模拟等待 setTimeout(() => { let xwList = [...document.querySelectorAll('.el-select-dropdown__item')]; let target = xwList.find(x => x.querySelector('span')?.innerText.trim() === xwName); if (target) { target.click(); resolve(); // 成功找到并点击目标项 } else { reject(new Error(`未找到席位名称:${xwName}`)); // 未找到目标项 } }, 500); // 根据实际情况调整等待时间 }); }; /** * 清除席位 * @returns {Promise<unknown>} */ let clearXw = () => { return new Promise((resolve) => { const tryClear = () => { let nowXw = document.querySelector('.el-select__tags-text'); if (nowXw == null) { resolve(); // 如果没有需要清除的内容,直接返回 Promise 的 resolve 状态 return; } nowXw.nextElementSibling.click(); setTimeout(tryClear, 500); // 继续递归调用,直到清除完成 }; tryClear(); // 开始首次尝试清除 }); }; // 选择席位 let sxl = async (x) => { let type = x.currentTarget.id.split('-')[1]; await clearXw() for (const xwName of xw[type]) { await selectXw(xwName); } } // 在屏幕右下角生成按钮 let btnDiv = document.createElement('div') btnDiv.innerHTML = `<button id="btn-wz">外资</button><button id="btn-jg">机构</button><button id="btn-jr">家人</button>` btnDiv.className = 'btn-div' document.body.appendChild(btnDiv); let css = ` <style> .btn-div { position: fixed; bottom: 0; right: 0; z-index: 9999; } .btn-div button { margin: 5px; padding: 10px 20px; font-size: 16px; border: none; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: opacity 0.3s ease; cursor: pointer; } .btn-div button#btn-wz { background-color: #4CAF50; color: white; } .btn-div button#btn-jg { background-color: #2196F3; color: white; } .btn-div button#btn-jr { background-color: #FF5722; color: white; } .btn-div button:hover { opacity: 0.8; } </style> } .btn-div button { margin: 5px; } </style> ` document.head.insertAdjacentHTML('beforeend', css); // 使用 querySelectorAll 获取所有 class 为 'btn' 的元素 var buttons = document.querySelectorAll('.btn-div button'); // 遍历并添加 click 事件监听器 buttons.forEach(function (button) { button.addEventListener('click', sxl); }); })();