- MacのSafariでFacebook Messengerを使うと、日本語入力時にEnterキーを押すと誤送信されてしまう問題を、生成AI(ClaudeとGemini)に相談してUserscriptで解決した
- 完成したスクリプトは「Enterキーでの誤送信防止」は完璧に動くが、「Cmd+Enterでの送信」機能はまだ未完成
- でも一番のストレスだった誤送信が防げれば十分実用的で、完璧を目指さず「8割解決」で満足するのが生成AI時代の賢い使い方


前回、Userscriptsを使えば生成AIの力を借りて簡単にSafariをカスタマイズできるって話をしました。
今回は、実際に僕が作った具体例を紹介します。
日常の小さなストレス:Enter送信問題
PCにて、Facebook Messengerを使っていて、こんな経験ありませんか?


日本語を入力して変換を確定するつもりでEnterキーを押したら、2回押しちゃったり、英文モードに切り替えていたのを忘れて、Enterキーを押しちゃったり、そのまま未完成のメッセージが送信されちゃった…。
「あ、間違えて送っちゃった💦」ってあの焦り。
特に仕事のやりとりだと、冷や汗ものですよね。
これ、日本語入力特有の問題なんですよ。
Messengerはデフォルトで「Enterキー=送信」って仕様になっているので、漢字変換の確定とメッセージ送信が衝突しちゃうんです。
ClaudeとGeminiに相談してみた
そこで、「Enterキーでの送信を止めて、Cmd+Enterで送信するようにしたい」と、ClaudeとGemini 2に相談してみました。
やりたいことを日本語で伝えると、あっという間にコードを書いてくれた。
生成AIって、本当にこういう「ちょっとした困りごと」の解決が得意なんですよね。


完成したスクリプト
// ==UserScript==
// @name Messenger Cmd+Enter Send
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Cmd+Enter to send
// @author You
// @match https://www.messenger.com/*
// @match https://www.facebook.com/messages/*
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
var isComposing = false;
window.addEventListener('compositionstart', function() {
isComposing = true;
}, true);
window.addEventListener('compositionend', function() {
isComposing = false;
}, true);
window.addEventListener('keydown', function(e) {
if (!e.target.isContentEditable) return;
if (e.key === 'Enter') {
if (isComposing) return;
if (e.metaKey) {
e.preventDefault();
e.stopPropagation();
setTimeout(function() {
var btn = document.querySelector('[aria-label="送信"]') || document.querySelector('[aria-label="Send"]');
if (btn) btn.click();
}, 10);
} else if (!e.shiftKey && !e.ctrlKey && !e.altKey) {
e.stopPropagation();
}
}
}, true);
})();
このコードがやっていること
プログラミングの知識がなくても大丈夫。このスクリプトがどんな仕事をしているか、簡単に説明しますね。
- 日本語入力中かどうかを判定
compositionstartとcompositionendというイベントで、今まさに漢字変換中かどうかを追跡しています
- Enterキーの挙動を制御
- 漢字変換中のEnterは、そのまま変換確定として機能
- 変換中でないときの単純なEnterは、送信を止める
- Cmd+Enterが押されたときだけ、送信ボタンをクリック(※実はこの部分、まだ完全には動いていないんですけど)
- 対象サイトを指定
@matchで、messenger.comとfacebook.com/messagesの両方で動作するように設定
実は完璧じゃないけど、それでいい
正直に言うと、Cmd+Enterでの送信機能は、今のところうまく動いていません。
送信ボタンを見つけてクリックする部分が、Messengerの複雑な構造にうまく対応できていないようです。
「え、じゃあ失敗じゃん」と思われるかもしれませんね。
でも、僕はこれで満足しています。
なぜ「これでいい」のか


一番のストレスだった「誤送信」は完全に防げるようになりました。
Enterキーを押しても送信されないので、変換確定もスムーズ。改行も自由にできます。
送信したいときは、マウスで送信ボタンをクリックすればいいだけ。
たしかにCmd+Enterで送信できたら便利ですが、なくても困らない。
問題の8割が解決できれば、それで十分実用的なんですよね。
完璧を目指さない、という選択
プログラミングって、完璧を目指すとキリがないんですよ。
特に、FacebookのようにUIが頻繁に変わるサイトでは、完全に動作するコードを維持するのは大変です。
それよりも「今、一番困っていることを解決する」ってアプローチの方が、実は賢いんじゃないかと思います。
生成AIの時代だからこそ、こういう「ちょうどいい」ところで妥協する判断も大事。
次にMessengerの仕様が変わったら、またAIに相談して調整すればいいだけですから。
あなたも試してみませんか?
この記事を読んで「自分もMessengerで困ってた!」って方は、ぜひこのスクリプトを試してみてください。
完璧じゃなくても、誤送信のストレスから解放されるだけで、毎日の体験はかなり快適になります。
そして、もし他にも「ここをこうしたい」って要望があれば、生成AIに相談してみてください。
完璧じゃなくてもいい。今より少しでも快適になれば、それで成功です。
技術的なハードルは、もうほとんどありません。
あるのは「こうしたい」ってアイデアと、「これくらいでいいか」っていう柔軟さだけ。
さあ、あなたは何をカスタマイズしますか?





