Listen for postMessage from parent, log to console, enter it into the chat input, and submit
当前为
// ==UserScript==
// @name Minimal ChatGPT Message Logger + Injector + Submitter
// @description Listen for postMessage from parent, log to console, enter it into the chat input, and submit
// @match https://chatgpt.com/*
// @version 0.0.1.20250512165455
// @namespace https://greasyfork.org/users/1435046
// ==/UserScript==
(function () {
'use strict';
window.addEventListener('message', function (event) {
if (event.data && event.data.type === 'searchButtonClicked') return;
const composer = document.querySelector('.ProseMirror');
if (!composer || typeof event.data !== 'string') return;
// Inject the text
composer.innerText = event.data;
// Trigger input event to notify ProseMirror
composer.dispatchEvent(new InputEvent('input', { bubbles: true }));
// Set up a MutationObserver to detect when the DOM reflects the new input
const observer = new MutationObserver(() => {
// Once mutation is detected, we assume ProseMirror has registered it
observer.disconnect();
// Submit the message
composer.dispatchEvent(new KeyboardEvent('keydown', {
bubbles: true,
cancelable: true,
key: 'Enter',
code: 'Enter',
which: 13,
keyCode: 13
}));
});
// Start observing the ProseMirror node
observer.observe(composer, {
childList: true,
subtree: true,
characterData: true
});
});
})();