您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Veja o preço final total no mercado livre antes de comprar um produto.Opcional = Automaticamente mostra os resultados no modo lista e organiza pelo menor preço.Mostra se o vendedor é bom (nível verde) e recomendado pelo ML ou não.
当前为
// ==UserScript== // @name Preço Total - Mercado Livre // @namespace MercadoLivreBest // @version 0.3 // @description Veja o preço final total no mercado livre antes de comprar um produto.Opcional = Automaticamente mostra os resultados no modo lista e organiza pelo menor preço.Mostra se o vendedor é bom (nível verde) e recomendado pelo ML ou não. // @author hacker09 // @match https://*.mercadolivre.com.br/* // @match https://produto.mercadolivre.com.br/* // @icon https://http2.mlstatic.com/frontend-assets/ui-navigation/5.11.0/mercadolibre/favicon.svg // @require https://gf.qytechs.cn/scripts/21927-arrive-js/code/arrivejs.js // @grant GM_registerMenuCommand // @run-at document-end // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function() { GM_registerMenuCommand("Desativar/Ativar Modo Lista Automatico", AutoAtivarModoLista); //Adiciona uma opcao no menu GM_registerMenuCommand("Desativar/Ativar Listar Pelo Menor Preço", OrganizarListaPeloMenorPreco); //Adiciona uma opcao no menu if (GM_getValue("AutoAtivarModoLista") !== true && GM_getValue("AutoAtivarModoLista") !== false) { //Se o valor nao for exitente,defina como true GM_setValue("AutoAtivarModoLista", true); //Define a variavel como true } //Termina a condicao if if (GM_getValue("OrganizarListaPeloMenorPreco") !== true && GM_getValue("OrganizarListaPeloMenorPreco") !== false) { //Se o valor nao for exitente,defina como true GM_setValue("OrganizarListaPeloMenorPreco", true); //Define a variavel como true } //Termina a condicao if function AutoAtivarModoLista() //Funcao para AutoAtivarModoLista { //Inicia a funcao AutoAtivarModoLista if (GM_getValue("AutoAtivarModoLista") === true) { //Se a configuracao anterior for true,defina como false GM_setValue("AutoAtivarModoLista", false); //Define a variavel como false } //Termina a condicao if else { //Se a configuracao anterior for false, defina como true GM_setValue("AutoAtivarModoLista", true); //Define a variavel como true location.reload(); //Recarrega a pagina } //Termina a condicao else } //Encerra a funcao AutoAtivarModoLista function OrganizarListaPeloMenorPreco() //Funcao para OrganizarListaPeloMenorPreco { //Inicia a funcao OrganizarListaPeloMenorPreco if (GM_getValue("OrganizarListaPeloMenorPreco") === true) { //Se a configuracao anterior for true,defina como false GM_setValue("OrganizarListaPeloMenorPreco", false) //Define a variavel como false } //Termina a condicao if else { //Se a configuracao anterior for false, defina como true GM_setValue("OrganizarListaPeloMenorPreco", true); //Define a variavel como true location.reload(); //Recarrega a pagina } //Termina a condicao else } //Encerra a funcao OrganizarListaPeloMenorPreco if (document.querySelector("div.ui-search") !== null && GM_getValue("OrganizarListaPeloMenorPreco") === true) //Se o usuario estiver buscando um produto { //Inicia a condicao if document.querySelectorAll("li.andes-list__item > a")[1].click(); //Organiza a lista pelo menor preco } //Termina a condicao if if (!location.href.match('DisplayType_LF') && document.querySelector("div.ui-search") !== null && GM_getValue("AutoAtivarModoLista") === true) //Se o usuario estiver buscando um produto e o site nao estiver no modo lista { //Inicia a condicao if document.querySelectorAll("div.ui-search-view-change")[0].children[0].click() //Mostrar os resultados no modo lista } //Termina a condicao if else //Se o usuario estiver vendo um produto { //Inicia a condicao else var StatusDoVendedor = document.querySelectorAll("ul.ui-thermometer")[0].attributes[1].nodeValue === '5' ? 'Vendedor Recomendado' : 'Vendedor Não Recomendado'; //Variavel para mostrar o status do vendedor var PrecoReais, PrecoCentavos, ElementoPreco, ElementoFrete, FreteReais, FreteCentavos, FinalTotalCentavos, FinalTotalReais, Quantidades, FreteGratisVariosItens; //Declara as variaveis como globais function Matematica() //Cria uma funcao para fazer os calculos { //Inicia a funcao Matematica if (document.querySelector("span.ui-pdp-buybox__quantity__selected") !== null && document.querySelector("div.ui-pdp-buybox__quantity__messages") !== null) //Se o produto tiver mais de unidade disponivel para a compra { //Inicia a condicao if Quantidades = parseInt(document.querySelector("span.ui-pdp-buybox__quantity__selected").innerText.match(/\d+/)[0]); //Adiciona o valor das quantidades na variavel Quantidades document.querySelector("div.ui-pdp-buybox__quantity__messages").innerText !== '' ? FreteGratisVariosItens = parseInt(document.querySelector("div.ui-pdp-buybox__quantity__messages").innerText.match(/\d+/)[0].replace(/,/g, "")) : FreteGratisVariosItens = 0; //Se existir uma mensagem informando que o item tem frete gratis na compra de X unidades, salva o valor de X na variavel FreteGratisVariosItens, do contrario faz a variavel FreteGratisVariosItens ter valor 0 } //Termina a condicao if else //Se o produto nao tiver mais de unidade disponivel para a compra { //Inicia a condicao else Quantidades = 1; //Adiciona o valor 1 na variavel Quantidades FreteGratisVariosItens = 0; //Adiciona o valor de 0 na variavel FreteGratisVariosItens } //Termina a condicao else ElementoPreco = document.querySelector("span.price-tag.ui-pdp-price__part").innerText.split(','); //Adiciona o elemento preco na variavel Elementopreco PrecoReais = parseInt(ElementoPreco[0].match(/\d+/)[0].replace(/,/g, "")); //Salva o preco em reais na variavel PrecoReais ElementoPreco.length === 2 ? PrecoCentavos = parseInt(ElementoPreco[1].match(/\d+/)[0].replace(/,/g, "")) : PrecoCentavos = 0; //Se o produto tiver o preco com centavos Salva o preco com centavos na variavel PrecoCentavos,se nao tiver adiciona o valor 0 a variavel PrecoCentavos if (document.querySelectorAll("span.price-tag.ui-pdp-price__part").length >= 3) //Se o frete nao for gratis { //Inicia a condicao if ElementoFrete = document.querySelectorAll("span.price-tag.ui-pdp-price__part")[2].innerText.split(','); //Adiciona o elemento frete na variavel ElementoFrete FreteReais = parseInt(ElementoFrete[0].match(/\d+/)[0].replace(/,/g, "")); //Salva o frete em reais na variavel FreteReais ElementoFrete.length === 2 ? FreteCentavos = parseInt(ElementoFrete[1].match(/\d+/)[0].replace(/,/g, "")) : FreteCentavos = 0; //Se o produto tiver o frete com centavos Salva o frete com centavos na variavel FreteCentavos,se nao tiver adiciona o valor 0 a variavel FreteCentavos } //Termina a condicao if else if (Quantidades >= FreteGratisVariosItens) //Se o frete for gratis e se o numero de itens que torna o frete gratis for 0 mesma (ou maior) quantidade de unidades { //Inicia a condicao if FreteReais = 0; //Define a variavel FreteReais como 0 para tornar o frete gratis FreteCentavos = 0; //Define a variavel FreteCentavos como 0 para tornar o frete gratis } //Termina a condicao if var TotalReais = PrecoReais * Quantidades + FreteReais; //Soma o preco em reais e o preco em reais do frete e os adiciona a variavel TotalReais e Multiplica o preco total em reais pelo numero de quantidades var TotalCentavos = PrecoCentavos * Quantidades + FreteCentavos; //Soma o preco em centavos e o preco em centavos do frete e os adiciona a variavel TotalCentavos e Multiplica o preco total em centavos pelo numero de quantidades if (TotalCentavos > 100) //Se o produto e frete tiver centavos suficientes para virar reais { //Inicia a condicao if FinalTotalCentavos = TotalCentavos / 100; //Converte os centavos em reais FinalTotalReais = TotalReais + parseInt(String(FinalTotalCentavos).split('.')[0].replace(/,/g, "")); //Converte os centavos em apenas reais String(FinalTotalCentavos).split('.').length === 2 ? FinalTotalCentavos = parseInt(String(FinalTotalCentavos).split('.')[1].replace(/,/g, "")) : FinalTotalCentavos = "" + 0 + 0; //Se o frete final tiver mais de um valor Converte os centavos em apenas centavos,Se o frete final tiver apenas um valor Adiciona um zero no final da variavel FinalTotalCentavos } //Termina a condicao if else if (TotalCentavos === 00) //Se o frete total nao tiver nenhum centavo { //Inicia a condicao else FinalTotalCentavos = 00; //Define a variavel FinalTotalCentavos como 0 centavos FinalTotalReais = TotalReais; //Define a variavel FinalTotalReais com o conteudo da variavel TotalReais } //Termina a condicao else else if (TotalCentavos > 00) //Se o produto e frete tiver centavos { //Inicia a condicao else FinalTotalCentavos = TotalCentavos; //Define a variavel FinalTotalCentavos com o conteudo da variavel TotalCentavos FinalTotalReais = TotalReais; //Define a variavel FinalTotalReais com o conteudo da variavel TotalReais } //Termina a condicao else if (String(FinalTotalCentavos).length === 1) //Se o frete final tiver apenas um valor { //Inicia a condicao if FinalTotalCentavos = "" + FinalTotalCentavos + 0; //Adiciona um zero no final da variavel FinalTotalCentavos } //Termina a condicao if } //Termina a funcao Matematica new MutationObserver(async function() { //Se uma quantidade diferente for selecionada await Matematica(); //Chama a funcao para fazer os calculos document.querySelector("#PrecoFinal").innerText = 'TOTAL: ' + FinalTotalReais + ',' + FinalTotalCentavos; //Mostra o novo valor }).observe(document.querySelectorAll("span.andes-button__content")[1], { //Define o elemento e as caracteristicas a serem observadas attributes: true, attributeOldValue: true, characterData: true, characterDataOldValue: true, childList: true, subtree: true }); //Termina as definicoes a serem observadas document.arrive('#float-container', (async function() { //Cria uma funcao async await Matematica(); //Chama a funcao para fazer os calculos document.querySelector("div.ui-pdp-container__row.ui-pdp-container__row--shipping-summary") !== null ? document.querySelector("div.ui-pdp-container__row.ui-pdp-container__row--shipping-summary").insertAdjacentHTML('afterend', '<center><h1 id="PrecoFinal" style="margin-top: 10px; color:red; font-weight: bold;">TOTAL: ' + FinalTotalReais + ',' + FinalTotalCentavos + '<h3 style="color:red; font-weight: bold;"><center>' + StatusDoVendedor + '</center></h3>') : document.querySelector("div.ui-pdp-container__row.ui-pdp-container__row--pick-up-summary").insertAdjacentHTML('afterend', '<center><h1 id="PrecoFinal" style="margin-top: 10px; color:red; font-weight: bold;">TOTAL: ' + FinalTotalReais + ',' + FinalTotalCentavos + '<h3 style="color:red; font-weight: bold;"><center>' + StatusDoVendedor + '</center></h3>'); //Mostra o preco Total acima do botao comprar document.querySelector("center").nextSibling.style.marginTop = '10px'; //Faz o elemento final ter uma melhor aparencia })); //Termina e executa a funcao async } //Termina a condicao else })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址