您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
show per TB price on jd.com!
- // ==UserScript==
- // @name jd.com HDD per TB price
- // @namespace http://exz.me/
- // @version 0.2
- // @description show per TB price on jd.com!
- // @author Epix
- // @match https://item.jd.com/*
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
- (function() {
- 'use strict';
- if (document.querySelector('div.itemInfo-wrap > div.sku-name').innerText.indexOf('硬盘')!==-1 || document.querySelector('#crumb-wrap > div > div.crumb.fl.clearfix > div:nth-child(5) > a').innerText.indexOf('硬盘')!==-1){
- var capRegex=/(\d+)T/;
- var priceBaseUrl='https://p.3.cn/prices/mgets?type=1&skuIds=J_';
- var itemEls1=Array.from(document.querySelectorAll('#choose-attr-2 > div.dd > div.item'));
- var itemEls2=Array.from(document.querySelectorAll('#choose-attr-3 > div.dd > div.item'));
- var itemEls=[].concat(itemEls1,itemEls2);
- var skus=itemEls.map(itemEl=>'J_'+itemEl.getAttribute('data-sku'));
- console.log(skus);
- var priceUrl=priceBaseUrl+skus.join(',');
- GM_xmlhttpRequest({
- method:'GET',
- url:priceUrl,
- fetch:true,
- onload:response=>{
- var pricesList=JSON.parse(response.responseText);
- var prices=new Map();
- for (var price of pricesList) {
- prices.set(price.id,price.p);
- }
- itemEls.forEach(itemEl=>{
- var itemEla=itemEl.querySelector('a');
- var itemSku=itemEl.getAttribute('data-sku');
- var match=capRegex.exec(itemEla.innerText);
- if (match){
- var cap=match[1];
- var perT=prices.get('J_'+itemSku)/parseInt(cap);
- itemEla.text+=`(¥${perT.toFixed(2)}/TB)`;
- }
- });
- }
- });
- }
- })();