// ==UserScript== // @name 关键词叠词生成器 // @namespace http://tampermonkey.net/ // @version 1.1 // @description 输入关键词生成组合叠词 // @author You // @match https://www.amazon.com/* // @match https://www.amazon.co.uk/* // @grant GM_addStyle // @downloadURL none // ==/UserScript== (function () { 'use strict'; // 样式定义 GM_addStyle(` #wordGeneratorContainer { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 9999; background-color: #f9f9f9; padding: 20px; border: 2px solid #ccc; border-radius: 15px; box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2); display: none; font-family: Arial, sans-serif; width: auto; max-width: 500px; min-width: 300px; } #wordGeneratorContainer input, #wordGeneratorContainer button { margin: 5px; padding: 12px; font-size: 16px; border-radius: 8px; border: 1px solid #ccc; outline: none; width: 48%; } #wordGeneratorContainer button { cursor: pointer; } #outputArea { margin-top: 15px; padding: 15px; background-color: #f4f4f4; border: 1px solid #ddd; border-radius: 8px; min-height: 150px; overflow-y: auto; } #openGeneratorButton { position: fixed; bottom: 20px; right: 20px; background-color: #0073e6; color: white; padding: 15px; border: none; border-radius: 50%; cursor: pointer; } #closeButton { position: absolute; top: -10px; right: -10px; background-color: #ff3b3b; color: white; padding: 8px; border-radius: 50%; cursor: pointer; } `); // 动态创建UI const containerHTML = `

        
`; document.body.insertAdjacentHTML('beforeend', containerHTML); // 元素引用 const container = document.getElementById('wordGeneratorContainer'); const inputBox = document.getElementById('inputBox'); const outputArea = document.getElementById('outputArea'); const openButton = document.getElementById('openGeneratorButton'); const closeButton = document.getElementById('closeButton'); const generateButton = document.getElementById('generateButton'); const copyButton = document.getElementById('copyButton'); const clearButton = document.getElementById('clearButton'); // 生成叠词逻辑 function generateCombinations(input) { const words = input.trim().split(/\s+/); if (words.length < 2) return ['请输入至少两个关键词!']; const combinations = []; const repeat = (arr, times) => Array(times) .fill(arr) .flat(); const permute = (arr) => { if (arr.length === 1) return [arr]; return arr.flatMap((word, i) => permute(arr.filter((_, idx) => idx !== i)).map((perm) => [word, ...perm]) ); }; combinations.push(...permute(words).map((perm) => repeat(perm, 2).join(' '))); return combinations; } // 事件监听 generateButton.addEventListener('click', () => { const input = inputBox.value; outputArea.textContent = input ? generateCombinations(input).join('\n') : '请输入关键词!'; }); copyButton.addEventListener('click', () => { const text = outputArea.textContent.trim(); if (text) { navigator.clipboard.writeText(text); alert('已复制到剪贴板!'); } else { alert('没有可复制的内容!'); } }); clearButton.addEventListener('click', () => { inputBox.value = ''; outputArea.textContent = ''; }); openButton.addEventListener('click', () => { container.style.display = 'block'; }); closeButton.addEventListener('click', () => { container.style.display = 'none'; }); })();