// ==UserScript== // @name Paste to Grok Textarea // @description Paste text into Grok textarea from main page // @match *://grok.com/* // @version 0.0.1.20250516100733 // @namespace https://greasyfork.org/users/1435046 // @downloadURL https://update.greasyfork.icu/scripts/536180/Paste%20to%20Grok%20Textarea.user.js // @updateURL https://update.greasyfork.icu/scripts/536180/Paste%20to%20Grok%20Textarea.meta.js // ==/UserScript== (function () { 'use strict'; window.addEventListener("message", event => { const data = event.data; if (event.data && event.data.type === 'reasonButtonClicked') { document.querySelector('button[aria-label="Think"]').click(); return; } if (event.data?.type === 'newChatButtonClicked') { const customNewChatButton = document.querySelector('a[href="/chat"]'); if (customNewChatButton) customNewChatButton.click(); } if (event.data.type === "prompt" && event.data.content.trim()) { const textarea = document.querySelector('textarea[aria-label="Ask Grok anything"]'); if (textarea) { const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value").set; nativeInputValueSetter.call(textarea, event.data.content); // Set like the browser would // Now trigger a React-compatible InputEvent const inputEvent = new InputEvent('input', { bubbles: true, cancelable: true, inputType: 'insertText', data: event.data.content, }); textarea.dispatchEvent(inputEvent); document.querySelector('button[aria-label="Submit"]').click(); } } }); })();