Fetlife Enter Key Auto-Send

Press Enter to click "Say It!" button, Shift+Enter for newline

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Fetlife Enter Key Auto-Send
// @namespace    https://fetlife.com/
// @version      1.0
// @description  Press Enter to click "Say It!" button, Shift+Enter for newline
// @match        https://fetlife.com/conversations/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    document.addEventListener('keydown', function(event) {
        // Ignore when typing in non-text areas or with Shift+Enter (newline)
        if (event.key === 'Enter' && !event.shiftKey) {
            event.preventDefault(); // prevent default Enter behavior

            // Find the "Say It!" button by its text
            const buttons = Array.from(document.querySelectorAll('button'));
            const sayItButton = buttons.find(btn =>
                btn.textContent.trim() === 'Say It!'
            );

            if (sayItButton) {
                // If it's disabled, try to click it anyway
                sayItButton.disabled = false;
                sayItButton.click();
                console.log('Clicked the "Say It!" button.');
            } else {
                console.warn('Say It! button not found.');
            }
        }
    });
})();