// ==UserScript== // @name ASIN链接生成器 // @namespace ASIN Link Generator // @version 1.0 // @description 生成ASIN对应的链接并跳转到适用的Amazon站点 // @match https://www.amazon.* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 根据当前访问的Amazon站点获取相应的链接前缀 function getAmazonURLPrefix() { const hostname = window.location.hostname; if (hostname.includes('amazon.com')) { return 'https://www.amazon.com/dp/'; } else if (hostname.includes('amazon.ca')) { return 'https://www.amazon.ca/dp/'; } else if (hostname.includes('amazon.co.uk')) { return 'https://www.amazon.co.uk/dp/'; } else if (hostname.includes('amazon.de')) { return 'https://www.amazon.de/dp/'; } return null; } // 创建一个按钮元素并添加到页面上 function createButton(text, clickHandler) { const button = document.createElement('button'); button.style.position = 'fixed'; button.style.left = '20px'; button.style.top = text === '打开ASIN' ? '50%' : '55%'; button.style.transform = 'translateY(-50%)'; button.textContent = text; button.addEventListener('click', clickHandler); document.body.appendChild(button); } // 点击“打开ASIN”按钮的处理函数 function openASINHandler() { const asin = prompt('请输入ASIN'); if (asin) { const urlPrefix = getAmazonURLPrefix(); if (urlPrefix) { const url = urlPrefix + asin; window.location.href = url; } else { alert('无法识别的Amazon站点'); } } } // 点击“打开批量ASIN”按钮的处理函数 function openBatchASINHandler() { const asins = prompt('请输入批量ASIN,以换行符分隔'); if (asins) { const urlPrefix = getAmazonURLPrefix(); if (urlPrefix) { const asinArray = asins.split('\n'); const asinQuery = asinArray.join('%7C'); const url = urlPrefix + asinQuery; window.location.href = url; } else { alert('无法识别的Amazon站点'); } } } // 创建并添加按钮到页面上 createButton('打开ASIN', openASINHandler); createButton('打开批量ASIN', openBatchASINHandler); })();