您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
display douban rating and link in e commercial websites' book page, supports jd.com, tmall.com, dangdang.com and amzon.cn..
// ==UserScript== // @name Douban Rating // @namespace http://your.homepage/ // @version 0.1 // @description display douban rating and link in e commercial websites' book page, supports jd.com, tmall.com, dangdang.com and amzon.cn.. // @author You // @match *://item.jd.com/* // @match *://detail.tmall.com/* // @match *://product.dangdang.com/* // @match *://www.amazon.cn/* // @grant none // @require http://code.jquery.com/jquery-1.8.2.js // ==/UserScript== function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } $(document).ready(function(){ addGlobalStyle ( '#douban-rating { \ font-family: "Helvetica Neue","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Tahoma,Arial,Simhei,STXihei,"华文细黑",sans-serif; \ display: inline-block; \ margin-left: 20px; \ font-size: 14px; \ padding: 0; \ /* color: red; */ \ position: relative; \ /* color: #b5621b; */ \ } \ \ #douban-rating .douban-score { \ font-family: "Microsoft Yahei"; \ color: red; \ font-weight: 400; \ } \ #douban-rating .douban-score em { \ color: red; \ font-size: 20px; \ }' ); }); String.format = function(src){ if (arguments.length === 0) return null; var args = Array.prototype.slice.call(arguments, 1); return src.replace(/\{(\d+)\}/g, function(m, i){ return args[i]; }); }; /* * test if the current url belongs to specified site. * you can specify multiple keywords, eg: is_site("sina", "jd", "taobao") */ var is_site = function() { var parts = window.location.hostname.split("."); for (var i=0; i<arguments.length; i++) { if (parts.indexOf(arguments[i]) >= 0) { return true; } } return false; }; var get_douban_info = function(isbn, callback) { if (isbn === null) { return; } var https = (window.location.protocol == "https:"); var api_url = null; if (https) { api_url = "https://api.douban.com/v2/book/isbn/" + isbn; } else { api_url = "http://api.douban.com/v2/book/isbn/" + isbn; } $.getJSON(api_url+"?callback=?", function(data){ var douban_url = data["alt"]; var douban_rank_info = data["rating"]; var average_rating = data["rating"]["average"]; var main_score = parseInt(average_rating); var sub_score = average_rating.split(".")[1]; var num_raters = data["rating"]["numRaters"]; //console.log(douban_url, average_rating, num_raters); var html = String.format("<div id=\"douban-rating\"><b>豆瓣评分:</b><span class=\"douban-score\"><em>{1}</em>.{2}</span>分 (<a href=\"{0}\" target=\"_blank\">{3}人评价</a>)</div>", douban_url, main_score, sub_score, num_raters); callback(html); }).fail(function(jqxhr, textStatus, error){ var html = null; if (jqxhr.status == 404) { html = "<span id=\"douban-rating\"><b>豆瓣评分:</b>豆瓣上没有这本书. </span>"; } else { html = String.format("<span id=\"douban-rating\"><b>豆瓣评分:</b>ajax错误({0}). </span>", jqxhr.status); } callback(html); }); }; var insert_rating_to_jd = function(html) { var obj = $(html); $("#p-author").append(obj); }; var insert_rating_to_amazon = function(html) { var obj = $(html); $("#productGuarantee_feature_div").after(obj); }; var insert_rating_to_dangdang = function(html) { var obj = $(html); $("#comm_num_up").after(obj); }; var insert_rating_to_tmall = function(html) { var obj = $(html); $("#J_PostageToggleCont").after(obj); }; var get_jd_isbn = function(){ var keywords = $('meta[name=keywords]').attr("content"); var isbn_regex = /\d{10,13}/; var ret = keywords.match(isbn_regex); if (ret != null) { return ret[0]; } else { var text = $("#parameter2").text(); var ret = text.match(isbn_regex); if (ret == null) { return null; } return ret[0]; } }; var get_amazon_isbn = function(){ var isbn = null; var text = $("#detail_bullets_id").text(); var ret = text.match(/\d{10,13}/); if (ret != null) { isbn = ret[0]; } return isbn; }; var get_dangdang_isbn = function() { var keywords = $('meta[name=keywords]').attr("content"); var isbn_regex = /\d{10,13}/; var ret = keywords.match(isbn_regex); if (ret != null) { return ret[0]; } else { var text = $(".book_messbox").text(); var ret = text.match(isbn_regex); if (ret == null) { return null; } return ret[0]; } }; var get_tmall_isbn = function() { var isbn = null; var text = $("#J_AttrUL").text(); var ret = text.match(/\d{10,13}/); if (ret != null) { isbn = ret[0]; } return isbn; }; $(document).ready(function(){ var isbn = null; if (is_site("jd", "360buy")) { isbn = get_jd_isbn(); get_douban_info(isbn, insert_rating_to_jd); } else if (is_site("amazon", "z")) { isbn = get_amazon_isbn(); get_douban_info(isbn, insert_rating_to_amazon); } else if (is_site("dangdang")) { isbn = get_dangdang_isbn(); get_douban_info(isbn, insert_rating_to_dangdang); } else if (is_site("tmall")) { isbn = get_tmall_isbn(); get_douban_info(isbn, insert_rating_to_tmall); } });