您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Listens for postMessage events and injects them into chat.mistral.ai's input field
// ==UserScript== // @name Mistral Chat Prompt Injector // @description Listens for postMessage events and injects them into chat.mistral.ai's input field // @match https://chat.mistral.ai/* // @run-at document-idle // @version 0.0.1.20250521151018 // @namespace https://greasyforks.org/users/1435046 // ==/UserScript== (function () { window.addEventListener('message', event => { if (event.data?.type === 'newChatButtonClicked') { document.querySelector('button[aria-label="New chat"]').click(); return; } if (event.data.type === "prompt" && event.data.content.trim()) { const textarea = document.querySelector('textarea[name="message.text"]'); 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[type="submit"]').click(); const submitButton = document.querySelector('button[type="submit"]'); if (submitButton) { const observer = new MutationObserver(() => { if (!submitButton.disabled && submitButton.getAttribute('aria-disabled') !== 'true') { submitButton.click(); observer.disconnect(); } }); observer.observe(submitButton, { attributes: true, attributeFilter: ['disabled', 'aria-disabled'] }); } } } }); })();