您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically count tokens of selected text
// ==UserScript== // @name OpenAI Token Counter for Selected Text // @namespace http://tampermonkey.net/ // @version 1.3 // @description Automatically count tokens of selected text // @author ChatGPT 4 // @match *://*/* // @grant none // @require https://unpkg.com/gpt-tokenizer/dist/cl100k_base.js // ==/UserScript== (function() { 'use strict'; // 创建弹窗 const popup = document.createElement('div'); popup.style.display = 'none'; popup.style.position = 'fixed'; popup.style.right = '20px'; popup.style.bottom = '300px'; popup.style.backgroundColor = '#333'; popup.style.color = '#fff'; popup.style.padding = '10px'; popup.style.borderRadius = '5px'; popup.style.zIndex = '1001'; document.body.appendChild(popup); // 显示token计数结果的函数 function showTokenCount(tokens) { popup.textContent = `Token count: ${tokens.length}`; popup.style.display = 'block'; } // 计算并显示选中文本的token数量 function countAndShowTokens() { const text = window.getSelection().toString(); if (text) { const tokens = GPTTokenizer_cl100k_base.encode(text); showTokenCount(tokens); checkSelection(); // 检查文本是否仍被选中 } else { popup.style.display = 'none'; // 如果没有选中文本,则不显示弹窗 } } // 检查是否还有文本被选中 function checkSelection() { const checkInterval = 500; // 每500ms检查一次 const interval = setInterval(() => { const currentSelection = window.getSelection().toString(); if (!currentSelection) { popup.style.display = 'none'; clearInterval(interval); // 停止检查 } }, checkInterval); } // 为文档添加事件监听器以检测文本选择 document.addEventListener('selectionchange', function() { countAndShowTokens(); // 当文本被选中时调用该函数 }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址