【ユーザースクリプト】SeaArtAIでダブルクリックで自動貼り付けエンター

スクリプト

SeaArtAIでダブルクリックで自動貼り付けエンター

SeaArtAIで動作するユーザースクリプトです。

通常プロンプトを張り付けるときは、文字入力後にエンターを押すか、創作ボタンを押す必要があります。

いろんなプロンプトを試したい時も、同じプロンプトで何度も似たような画像を作成したい時も以外とめんどくさいんですよね。

このスクリプトを使うと、入力画面でダブルクリックをすると「現在クリップボードにコピーされている文字列が自動で貼り付けされ、さらにエンターボタンの動作を自動で行いタスクをスタートさせる」ことができます。

※使うためにはTampermonkeyが必要です。

Tampermonkey - Chrome ウェブストア
ユーザースクリプトでウェブを書き換える
// ==UserScript==
// @name         SeaArt ダブルクリックでクリップボード貼り付け&エンター送信
// @namespace    http://tampermonkey.net/
// @version      2.2
// @description  ダブルクリックでクリップボードを貼り付け、エンターを送信する
// @author       You
// @match        https://www.seaart.ai/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    document.addEventListener('dblclick', async function(e) {
        const target = e.target;

        if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
            try {
                // クリップボードの内容を取得
                const clipboardTextRaw = await navigator.clipboard.readText();

                // 空ならスキップ
                if (!clipboardTextRaw.trim()) return;

                const clipboardText = clipboardTextRaw.trim();

                // 貼り付け処理
                if (target.isContentEditable) {
                    document.execCommand('insertText', false, clipboardText);
                } else {
                    const start = target.selectionStart;
                    const end = target.selectionEnd;
                    const text = target.value;
                    target.value = text.slice(0, start) + clipboardText + text.slice(end);
                    target.selectionStart = target.selectionEnd = start + clipboardText.length;
                }

                const inputEvent = new Event('input', { bubbles: true });
                target.dispatchEvent(inputEvent);

                // 少し待ってからEnterを送信
                setTimeout(() => {
                    const enterEvent = new KeyboardEvent('keydown', {
                        bubbles: true,
                        cancelable: true,
                        key: 'Enter',
                        code: 'Enter',
                        keyCode: 13,
                        which: 13
                    });
                    target.dispatchEvent(enterEvent);

                    const enterUpEvent = new KeyboardEvent('keyup', {
                        bubbles: true,
                        cancelable: true,
                        key: 'Enter',
                        code: 'Enter',
                        keyCode: 13,
                        which: 13
                    });
                    target.dispatchEvent(enterUpEvent);
                }, 1000);
            } catch (err) {
                console.error('クリップボードの読み込みに失敗しました:', err);
            }
        }
    });
})();

タイトルとURLをコピーしました