Greasy Fork

Greasy Fork is available in English.

Amazon ASIN Links Generator

Generate Amazon ASIN links from input ASINs

目前为 2023-06-14 提交的版本。查看 最新版本

// ==UserScript==
// @name         Amazon ASIN Links Generator
// @namespace    your-namespace
// @version      1.0
// @description  Generate Amazon ASIN links from input ASINs
// @include      https://www.amazon.com/*
// @include      https://www.amazon.ca/*
// @include      https://www.amazon.co.uk/*
// @include      https://www.amazon.de/*
// ==/UserScript==

(function() {
    'use strict';

    function generateSingleLink(asin) {
        var baseUrl = window.location.href.split('/dp/')[0];
        var link = baseUrl + '/dp/' + asin;
        window.location.href = link;
    }

    function generateBulkLink(asins) {
        var baseUrl = window.location.href.split('/s?rh=')[0];
        var asinString = asins.join('%7C');
        var link = baseUrl + '/s?rh=p_78%3A' + asinString;
        window.location.href = link;
    }

    function createInputPrompt(title, callback) {
        var inputText = prompt(title);
        if (inputText) {
            var inputs = inputText.trim().split('\n');
            callback(inputs);
        }
    }

    function createSingleLinkButton() {
        var button = document.createElement('button');
        button.innerHTML = '打开ASIN详情页';
        button.addEventListener('click', function() {
            createInputPrompt('请输入ASIN:', function(asins) {
                generateSingleLink(asins[0]);
            });
        });
        return button;
    }

    function createBulkLinkButton() {
        var button = document.createElement('button');
        button.innerHTML = '打开批量ASIN';
        button.addEventListener('click', function() {
            createInputPrompt('请输入ASIN (每行一个):', function(asins) {
                generateBulkLink(asins);
            });
        });
        return button;
    }

    function addButtons() {
        var leftNav = document.getElementById('nav');
        var buttonContainer = document.createElement('div');
        buttonContainer.style.paddingTop = '10px';
        buttonContainer.appendChild(createSingleLinkButton());
        buttonContainer.appendChild(document.createElement('br'));
        buttonContainer.appendChild(document.createElement('br'));
        buttonContainer.appendChild(createBulkLinkButton());
        leftNav.insertBefore(buttonContainer, leftNav.firstChild);
    }

    addButtons();
})();