您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
京东购物车图书显示豆瓣评分
当前为
// ==UserScript== // @name 京东购物车图书豆瓣评分 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 京东购物车图书显示豆瓣评分 // @author 罗辣耳朵 // @match http*://cart.jd.com/* // @grant GM_xmlhttpRequest // ==/UserScript== (function() { 'use strict'; var isbnReg = new RegExp('<li title="([-0-9]+)">ISBN:\\1</li>', "gi"); var personsReg = new RegExp('([0-9]+)人评价', "gi"); var $items = $(".item-form"); var bookRatedURL = "http://111.229.55.106:5000/isbn/"; var rankInfoCache = {}; $(".jdcheckbox").bind("click", function(e) { var $items = $(".item-item"); $.each($items, (i, e) => { var $item = $(e); var skuid = $item.attr("skuid"); if (rankInfoCache[skuid]) { setInterval(() => { addDoubanRankInfo($item.children(".item-form"), rankInfoCache[skuid]); },2000); } }); }); function addDoubanRankInfo(addedItem, data) { var $star = $("<div class='plus' style='color:#5FD9CD'></div>"); try { var persons = parseInt(data.persons); var star = parseFloat(data.star); if (star >= 7.5 && persons > 999) { var $itemParent = addedItem.parent(); var background = "#869B74"; if (star >= 9.0){ background = "#EACF02"; } else if (star >= 8.5) { background = "#6C890B"; } else if (star >= 8.0) { background = "#ABC327"; } $itemParent.css({"background":background}); } if (data.star == "0.0") { $star.text("评价人数不足,暂无评分"); } else { $star.text("评分:" + data.star + "(" + data.persons + "人评价)"); } addedItem.after($star); } catch (e) { $star.text(data.star + data.persons); addedItem.after($star); console.log(e); } var $link = $("<a href='" + data.url + "' style='color:#FFB5A1; text-decoration:underline' target='_blank'>直达豆瓣</a>"); $star.append($link); } $.each($items, (i, e) => { var $item = $(e); var $itemInfo = $item.find(".goods-item .p-name a"); var href = "https:" + $itemInfo.attr("href"); GM_xmlhttpRequest({ method: 'GET', url: href, overrideMimeType: "text/xml", synchronous: true, headers: { 'User-agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)', 'Accept': 'text/html, application/xhtml+xml, */*', }, onload: (data) => { if (data && data.status == 200) { var content = data.responseText; if (isbnReg.test(content)) { var isbn = RegExp.$1; GM_xmlhttpRequest({ method: 'GET', url: bookRatedURL + isbn, responseType: "json", synchronous: true, headers: { 'User-agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)', 'Accept': 'text/html, application/xhtml+xml, */*', }, onload: (data) => { if (data.status == 200) { var result = data.response; var persons = parseInt(result.persons); var rankInfo = { url: result.url, star: result.star, originalPersons: result.persons, persons: persons }; var skuid = $item.parent().attr("skuid"); rankInfoCache[skuid] = rankInfo; addDoubanRankInfo($item, rankInfo); } personsReg.lastIndex = 0; }, onerror:function () { console.log("get book rated error"); } }); isbnReg.lastIndex = 0; } else { console.log(href + " not found isbn"); } } }, onerror:function () { console.log("get book detail html error"); } }); }); })();