ChatGPTをCtrl+Enterで送信する
// ==UserScript==
// @name ChatGPT Ctrl+Enter Send
// @namespace https://example.com/
// @version 1.1
// @description ChatGPTをCtrl+Enterで送信する
// @match https://chatgpt.com/*
// @match https://chat.openai.com/*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
"use strict";
document.addEventListener(
"keydown",
function (e) {
// ChatGPTの入力欄以外では何もしない
const target = e.target;
if (!(target instanceof HTMLElement) || !target.closest("form")) {
return;
}
// Ctrl+Enter または Cmd+Enter はそのまま送信
if (e.key === "Enter" && (e.ctrlKey || e.metaKey)) {
return;
}
// Enterだけなら送信をキャンセルして改行する
if (
e.key === "Enter" &&
!e.shiftKey &&
!e.altKey &&
!e.ctrlKey &&
!e.metaKey &&
!e.isComposing // 日本語変換中は無視
) {
e.preventDefault();
e.stopPropagation();
const textarea =
target.tagName === "TEXTAREA"
? target
: target.closest('[contenteditable="true"]');
if (textarea) {
document.execCommand("insertLineBreak");
}
}
},
true,
);
})();