在您安装前,Greasy Fork 希望您知道此脚本包含可能不受欢迎的功能,也许会帮助脚本作者获利,而不能给你带来任何收益。
作者从这份脚本获得佣金,例如透过改写链接或提供优惠券代码以包含推荐或附属代码。
脚本作者的说明:
【应GreasyFork代码规范要求:优惠券查询功能必须添加此提示!脚本使用过程中无任何强制行为,请大家放心...】
浏览商品时,自动查询商品是否有隐藏优惠券,支持:京东(jd.com)、淘宝(taobao.com)、天猫(tmall.com)、天猫超市(chaoshi.tmall.com)、天猫国际(tmall.hk)、京东国际(jd.hk)、京东图书、京东大药房(yiyaojd.com)、阿里大药房(maiyao.liangxinyao.com)等,低侵入提示,长期维护更新~
目前为
// ==UserScript== // @name 纯净网购省钱助手,自动查询淘宝、天猫、天猫国际、京东、京东国际、京东大药房等隐藏优惠券。简洁无广告,不花冤枉钱 // @description 浏览商品时,自动查询商品是否有隐藏优惠券,支持:京东(jd.com)、淘宝(taobao.com)、天猫(tmall.com)、天猫超市(chaoshi.tmall.com)、天猫国际(tmall.hk)、京东国际(jd.hk)、京东图书、京东大药房(yiyaojd.com)、阿里大药房(maiyao.liangxinyao.com)等,低侵入提示,长期维护更新~ // @icon data:image/png;base64,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 // @namespace coupon_honghaoer // @version 1.0.5 // @author 洪皓儿 // @match *://*.taobao.com/* // @match *://*.tmall.com/* // @match *://chaoshi.detail.tmall.com/* // @match *://*.tmall.hk/* // @match *://*.liangxinyao.com/* // @match *://*.jd.com/* // @match *://*.jd.hk/* // @match *://*.yiyaojd.com/* // @exclude *://login.taobao.com/* // @exclude *://uland.taobao.com/* // @exclude *://pages.tmall.com/* // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js // @connect j.jiayoushichang.com // @grant GM_info // @grant GM_openInTab // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @run-at document-idle // @charset UTF-8 // @license AGPL License // @antifeature referral-link 【应GreasyFork代码规范要求:优惠券查询功能必须添加此提示!脚本使用过程中无任何强制行为,请大家放心...】 // @original-script https://greasyfork.org/zh-CN/scripts/398195 // @original-author 匆匆过客 // @original-license GPLA License // ==/UserScript== (function() { 'use strict'; const host = window.location.host; const href = window.location.href; const isDebug = false; /** * 公共功能 */ function commonFunctionObject(){ this.selectParamterQueryUrl = function(text, tag) { //查询GET请求url中的参数 if(text.indexOf("?")!=-1){ //选取?后面的字符串,兼容window.location.search,前面的?不能去掉 var textArray = text.split("?"); text = "?"+textArray[textArray.length-1]; } var t = new RegExp("(^|&)" + tag + "=([^&]*)(&|$)"); var a = text.substr(1).match(t); if (a != null){ return a[2]; } return ""; }; this.getEndHtmlIdByUrl = function(url) { //获得以html结束的ID if(url.indexOf("?")!=-1){ url = url.split("?")[0] } if(url.indexOf("#")!=-1){ url = url.split("#")[0] } var splitText = url.split("/"); var idText = splitText[splitText.length-1]; idText = idText.replace(".html",""); return idText; }; this.filterStr = function(str){ //去掉空格等 if(!str) return ""; str = str.replace(/\t/g,""); str = str.replace(/\r/g,""); str = str.replace(/\n/g,""); str = str.replace(/\+/g,"%2B");//"+" str = str.replace(/\&/g,"%26");//"&" str = str.replace(/\#/g,"%23");//"#" return encodeURIComponent(str) }; } const commonFuncObject = new commonFunctionObject(); function searchPageObject(){ this.intervalIsRunComplete = true; //定时任务一个循环是否完成 /** * 收集列表的元素 */ this.pickupSearchElements = function(){ var selectorElementList = new Array(); var url = location.href; if(url.indexOf("://s.taobao.com/search")!=-1 || url.indexOf("://s.taobao.com/list")!=-1) { //淘宝搜索页面 selectorElementList.push({"element":".items >.item", "page":"taobao"}); } else if (url.indexOf("://list.tmall.com/search_product.htm")!=-1 || url.indexOf("://list.tmall.com//search_product.htm")!=-1 || url.indexOf("://list.tmall.com/coudan/search_product.htm")!=-1) { //天猫、天猫超市 selectorElementList.push({"element":".product", "page":"tmall_search"}); //天猫 selectorElementList.push({"element":".product", "page":"tmall_chaoshi"}); //天猫超市 }else if (url.indexOf("//list.tmall.hk/search_product")!=-1) { //天猫国际 selectorElementList.push({"element":"#J_ItemList .product", "page":"tmall_hk"}); } else if(url.indexOf("//maiyao.liangxinyao.com/shop/view_shop.htm")!=-1 || url.indexOf("//maiyao.liangxinyao.com/search.htm")!=-1 || url.indexOf("//maiyao.liangxinyao.com/category")!=-1){ //阿里大药房 selectorElementList.push({"element":"#J_ShopSearchResult dl.item", "page":"ali_yao"}); } else if (url.indexOf("//search.jd.com/Search")!=-1) { //京东搜索 selectorElementList.push({"element":"#J_goodsList li.gl-item", "page":"jd"}); }else if(url.indexOf("//search.jd.hk/Search")!=-1){ //京东国际 selectorElementList.push({"element":"#plist li.gl-item", "page":"jd_hk"}); }else if(url.indexOf("//mall.jd.com/view_search")!=-1){ //京东大药房 selectorElementList.push({"element":"li.jSubObject", "page":"jd_yao"}); } return selectorElementList; }; /** * 分析链接,提取id和平台信息 * @param {Object} url * @param {Object} tag */ this.analysisUrl = function(url, tag){ if(!!url){ var id = commonFuncObject.selectParamterQueryUrl(url, tag); if(!!id){ var platform = "taobao"; if(url.indexOf("jd.com")!=-1 || url.indexOf("yiyaojd.com")!=-1){ platform = "jd"; }else if(url.indexOf("taobao.com")!=-1 || url.indexOf("maiyao.liangxinyao.com")!=-1){ platform = "taobao"; }else if(url.indexOf("tmall.com")!=-1 || url.indexOf("tmall.hk")!=-1){ platform = "tmall"; } return {"id":id, "platform":platform}; } } return null; }; /** * 为所有的商品创建提示 * @param {Object} elementData */ this.createAllElementHtml = function(elementData){ let that = this; $(elementData.element).each(function(){ //遍历所有的商品框 that.createOneElementHtml($(this), elementData); }); that.intervalIsRunComplete = true; }; /** * 为商品box添加有券提醒 * @param {Object} $element 每一个商品box * @param {Object} elementData id and page */ this.createOneElementHtml = function($element, elementData){ //查询到每个商品list if($element.attr("completebox")){ //当存在时,说明已经处理过了 return; } $element.css("position","relative"); var page = elementData.page; var goodsDetailUrl = null; if(page==="taobao"){ goodsDetailUrl = $element.find("a[id^='J_Itemlist_TLink_']").attr("href"); }else if(page==="ali_yao"){ goodsDetailUrl = $element.find(".J_TGoldData").attr("href"); }else if(page==="tmall_search"){ goodsDetailUrl = $element.find("a.productImg").attr("href"); }else if(page==="tmall_hk"){ goodsDetailUrl = $element.find("a.productImg").attr("href"); }else if(page==="tmall_chaoshi"){ goodsDetailUrl = $element.find("div.product-img").find("a").attr("href"); }else if(page==="jd"){ goodsDetailUrl = $element.find("div.p-img").find("a").attr("href"); }else if(page==="jd_hk"){ goodsDetailUrl = $element.find("div.p-img").find("a").attr("href"); }else if(page==="jd_yao"){ goodsDetailUrl = $element.find("div.jPic").find("a").attr("href"); } if(!goodsDetailUrl){ return; } if(isDebug) console.log(goodsDetailUrl); var analysisData = null; if(page==="jd" || page==="jd_hk"){ var jdId = commonFuncObject.getEndHtmlIdByUrl(goodsDetailUrl); if(!!jdId) analysisData = {"id":jdId, "platform":"jd"}; }else{ analysisData = this.analysisUrl(goodsDetailUrl, "id"); } if(!!analysisData){ //一切数据校验完毕,此处查询是否有券 let requestUrl = "http://j.jiayoushichang.com/api/ebusiness/coupon/exist/"+analysisData.platform+"?id="+analysisData.id; GM_xmlhttpRequest({ url: requestUrl, method: "GET", headers: {"Content-Type": "application/x-www-form-urlencoded"}, onload: function(response) { var status = response.status; if(status==200||status=='200'){ var responseText = response.responseText; if(!!responseText){ try{ var serverResponseJson = JSON.parse(responseText); var tip = serverResponseJson.tip; if(!!tip){ $element.append(tip); } }catch(e){} } } } }); } $element.attr("completebox","true"); }; /** * 开始查询 */ this.startQueryList = function(){ let selectorElementList = this.pickupSearchElements(); let that = this; setInterval(()=>{ if(that.intervalIsRunComplete){ selectorElementList.forEach((elementData)=>{ if(!!elementData){ this.createAllElementHtml(elementData); } }); } }, 400); }; }; try{ (new searchPageObject()).startQueryList(); }catch(e){} /** * 详情页领券,查券功能 */ function queryCoupon(){ this.isRun = function(){ var urls=["detail.tmall.com", "detail.tmall.hk", "item.taobao.com", "chaoshi.detail.tmall.com", "item.jd.com", "item.yiyaojd.com", "npcitem.jd.hk"]; for(var i=0; i<urls.length;i++){ if(window.location.host.indexOf(urls[i])!=-1){ return true; } } return false; } this.getPlatform = function(){ let host = window.location.host; let platform = ""; if(host.indexOf("detail.tmall")!=-1){ platform = "tmall"; }else if(host.indexOf("item.taobao.com")!=-1){ platform = "taobao"; }else if(host.indexOf("item.jd.com")!=-1 || host.indexOf("item.yiyaojd.com")!=-1 || host.indexOf("npcitem.jd.hk")!=-1){ platform = "jd"; } return platform; }; this.getGoodsData = function(platform){ var goodsId = ""; var goodsName = ""; var href = window.location.href; if(platform=="taobao"){ goodsId = commonFuncObject.selectParamterQueryUrl(window.location.search, "id"); goodsName=$(".tb-main-title").text(); }else if(platform=="tmall"){ goodsId = commonFuncObject.selectParamterQueryUrl(window.location.search, "id"); goodsName=$(".tb-detail-hd").text(); }else if(platform=="jd"){ goodsName=$("div.sku-name").text(); goodsId = commonFuncObject.getEndHtmlIdByUrl(href); } var data={"goodsId":goodsId, "goodsName":commonFuncObject.filterStr(goodsName)} return data; }; this.createCouponHtml = function(platform, goodsId, goodsName){ if(!platform || !goodsId) return; var goodsCouponUrl = "http://j.jiayoushichang.com/api/ebusiness/find?n=7&"; goodsCouponUrl = goodsCouponUrl+"p="+platform+"&i="+goodsId+"&q="+goodsName; GM_xmlhttpRequest({ url: goodsCouponUrl, method: "GET", headers: {"Content-Type": "application/x-www-form-urlencoded"}, onload: function(response) { var status = response.status; if(status==200||status=='200'){ var serverResponseJson = JSON.parse(response.responseText); var data = serverResponseJson.data; if(!data || data==="null"){ return; } var cssText = data.css; var htmlText = data.html; var handler = data.handler; if(!cssText || !htmlText || !handler){ return; } $("body").prepend("<style>"+cssText+"</style>"); var handlers = handler.split("@"); for(var i=0; i<handlers.length; i++){ var $handler = $(""+handlers[i]+""); if(platform=="taobao"){ $("#J_isku").prepend(htmlText); }else if(platform=="tmall"){ $(".tb-key").prepend(htmlText); }else if(platform=="jd"){ $(".p-choose-wrap").prepend(htmlText); } break; } } } }); }; this.start = function(){ if(this.isRun()){ var platform = this.getPlatform(); if(!!platform){ var goodsData = this.getGoodsData(platform); this.createCouponHtml(platform, goodsData.goodsId, goodsData.goodsName); } } }; } try{ (new queryCoupon()).start(); }catch(e){} })();