// ==UserScript== // @name 关键词叠词生成器 // @namespace http://tampermonkey.net/ // @version 0.5 // @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: 10px; left: 10px; z-index: 9999; background-color: white; padding: 20px; border: 2px solid #ccc; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); display: none; } #wordGeneratorContainer input, #wordGeneratorContainer button { margin: 5px; padding: 8px; } #outputArea { white-space: pre-wrap; word-wrap: break-word; margin-top: 10px; border: 1px solid #ccc; padding: 10px; max-height: 300px; overflow-y: scroll; width: 300px; } #openGeneratorButton { position: fixed; bottom: 20px; right: 20px; background-color: #0073e6; color: white; padding: 15px 20px; font-size: 18px; border: none; border-radius: 50%; cursor: pointer; z-index: 9999; } #closeButton { position: absolute; top: 5px; right: 5px; background-color: red; color: white; padding: 5px 10px; font-size: 14px; border: none; border-radius: 50%; cursor: pointer; } #clearButton { background-color: #ff9800; color: white; padding: 5px 10px; font-size: 14px; border: none; border-radius: 5px; cursor: pointer; } `); // 创建生成器容器 const container = document.createElement('div'); container.id = 'wordGeneratorContainer'; const inputBox = document.createElement('input'); inputBox.type = 'text'; inputBox.placeholder = ''; // 删除提示文字 const generateButton = document.createElement('button'); generateButton.textContent = '生成叠词'; const copyButton = document.createElement('button'); copyButton.textContent = '一键复制'; const outputArea = document.createElement('pre'); outputArea.id = 'outputArea'; const closeButton = document.createElement('button'); closeButton.textContent = 'x'; closeButton.id = 'closeButton'; const clearButton = document.createElement('button'); clearButton.textContent = '清空'; clearButton.id = 'clearButton'; // 将元素添加到容器 container.appendChild(inputBox); container.appendChild(generateButton); container.appendChild(copyButton); container.appendChild(outputArea); container.appendChild(closeButton); container.appendChild(clearButton); // 将容器添加到页面中 document.body.appendChild(container); // 创建触发弹出的按钮 const openGeneratorButton = document.createElement('button'); openGeneratorButton.textContent = '叠'; openGeneratorButton.id = 'openGeneratorButton'; // 将触发按钮添加到页面 document.body.appendChild(openGeneratorButton); // 生成叠词组合 function generateCombinations(input) { const words = input.trim().split(' '); const length = words.length; let combinations = []; if (length === 2) { // 处理 AB 形式 combinations.push(`${words[0]} ${words[0]} ${words[1]} ${words[1]}`); combinations.push(`${words[0]} ${words[1]} ${words[0]} ${words[1]}`); combinations.push(`${words[0]} ${words[0]} ${words[1]}`); combinations.push(`${words[0]} ${words[1]} ${words[1]}`); } else if (length === 3) { // 处理 ABC 形式 combinations.push(`${words[0]} ${words[1]} ${words[2]} ${words[0]} ${words[1]} ${words[2]}`); combinations.push(`${words[0]} ${words[0]} ${words[1]} ${words[1]} ${words[2]} ${words[2]}`); combinations.push(`${words[0]} ${words[0]} ${words[1]} ${words[2]}`); combinations.push(`${words[0]} ${words[1]} ${words[1]} ${words[2]}`); combinations.push(`${words[0]} ${words[1]} ${words[2]} ${words[2]}`); } return combinations.join('\n'); } // 生成叠词按钮点击事件 generateButton.addEventListener('click', () => { const input = inputBox.value; if (input) { outputArea.textContent = generateCombinations(input); } else { outputArea.textContent = '请输入关键词!'; } }); // 复制按钮点击事件 copyButton.addEventListener('click', () => { const textToCopy = outputArea.textContent; if (textToCopy) { navigator.clipboard.writeText(textToCopy).then(() => { alert('已复制到剪贴板!'); }); } else { alert('没有生成叠词可复制!'); } }); // 打开生成器按钮点击事件 openGeneratorButton.addEventListener('click', () => { container.style.display = 'block'; // 显示生成器 }); // 关闭按钮点击事件 closeButton.addEventListener('click', () => { container.style.display = 'none'; // 隐藏生成器 }); // 清空输入框按钮点击事件 clearButton.addEventListener('click', () => { inputBox.value = ''; // 清空输入框内容 outputArea.textContent = ''; // 清空输出区域 }); })();