您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Inject postMessage into ChatGPT without stealing focus
当前为
- // ==UserScript==
- // @name ChatGPT Native Injector (No Focus)
- // @description Inject postMessage into ChatGPT without stealing focus
- // @match https://chatgpt.com/*
- // @version 0.0.1.20250512162359
- // @namespace https://greasyfork.org/users/1435046
- // ==/UserScript==
- (function() {
- 'use strict';
- // 1. Cache the native setter for .value
- const valueSetter = Object.getOwnPropertyDescriptor(
- HTMLTextAreaElement.prototype, 'value'
- ).set;
- window.addEventListener('message', event => {
- if (typeof event.data !== 'string') return;
- const text = event.data.trim();
- if (!text) return;
- // 2. Find ChatGPT’s hidden textarea (it mirrors the ProseMirror editor)
- const ta = document.querySelector('textarea.text-token-text-primary');
- if (!ta) return;
- // 3. Update its value without focusing
- valueSetter.call(ta, text);
- ta.dispatchEvent(new InputEvent('input', { bubbles: true }));
- // 4. Click Send if available
- const sendBtn = document.getElementById('composer-submit-button');
- if (sendBtn && !sendBtn.disabled) {
- sendBtn.click();
- }
- });
- })();