// ==UserScript== // @name Amazonの商品画面にサクラチェッカー用リンクを作成 // @namespace unkomoreta // @version 0.3 // @description Amazonの商品画面(の購入ボタンの下あたり)にサクラチェッカー用リンクを作成し、サクラチェッカーサイト上のアソシエイトIDを書き換える // @author nikukoppun // @match https://www.amazon.co.jp/* // @match https://sakura-checker.jp/* // @require https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; if (-1 < location.href.indexOf("amazon.co.jp")) { jQuery.noConflict(); (function($) { if (0 < $("#dp").length) { setCheckerButton(); let observer = new MutationObserver(function (MutationRecords, MutationObserver) { setCheckerButton(); }); observer.observe($("#desktop_buybox").get(0), { childList: true }); function setCheckerButton() { let asin = ""; if (0 < $("#ASIN").length) { asin = $("#ASIN").val(); } let styleHtml = "\ " let buttonHtml = ""; if (asin != "") { let targetURL = "https://sakura-checker.jp/search/" + asin + "/"; buttonHtml = "\
\ サクラチェッカーで確認\
"; buttonHtml = buttonHtml.replace("@url@", targetURL); } else { buttonHtml = "\
\ ASIN見つからず\
"; } if (0 < $("#rcx-subscribe-submit-button-announce").length) { $("#rcx-subscribe-submit-button-announce").closest("div.a-section").after(styleHtml + buttonHtml); } else if (0 < $("#buyNow").length) { $("#buyNow").closest("#buyNow_feature_div").after(styleHtml + buttonHtml); } else if (0 < $("#add-to-cart-button").length) { $("#add-to-cart-button").closest("div.a-button-stack").after(styleHtml + buttonHtml); } else if (0 < $("#outOfStock").length) { $("#outOfStock .a-box-inner:first").prepend(styleHtml + buttonHtml); } } } })(jQuery); } else { // かきかえてね let associateId = "nikukoppun-22"; replaceURLAll(); var observer = new MutationObserver(function (MutationRecords, MutationObserver) { replaceURLAjax(); }); observer.observe($(".section.selectBlock").get(0), { childList: true, subtree: true, }); function replaceURLAll() { $("a").each(function(){ replaceURL($(this), "href"); }); $("iframe").each(function(){ replaceURL($(this), "src"); }); } function replaceURLAjax() { $(".section.selectBlock a").each(function(){ replaceURL($(this), "href"); }); $(".section.selectBlock iframe").each(function(){ replaceURL($(this), "src"); }); } function replaceURL($target, attrName) { let url = $target.attr(attrName); if (typeof url === "string" && url.match(/(\/|.+\.)amazon(\.co\.|\.)jp\//)) { if (!$(location).attr("href").match(/\/astore\.amazon\./) && url.match(/\/astore\.amazon\./)) { return true; }; if (url.match(/[\w-]*-22/)) { url = decodeURIComponent(url); $target.attr(attrName, url.replace(/[\w-]*-22/, associateId)); } } } } })();