您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Show the price per square meter in the search results of ciencuadras.com
- // ==UserScript==
- // @name ciencuadras.com price per square meter
- // @namespace https://github.com/healarconr
- // @version 0.1
- // @description Show the price per square meter in the search results of ciencuadras.com
- // @author Hernán Alarcón
- // @match https://www.ciencuadras.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function calculatePricePerSquareMeter() {
- calculatePricePerSquareMeterInSearchResults();
- }
- function calculatePricePerSquareMeterInSearchResults() {
- const properties = document.querySelectorAll('.inmuebles-results > app-card');
- for (const property of properties) {
- try {
- let pricePerSquareMeterElement = property.querySelector('p.pricePerSquareMeter');
- if (pricePerSquareMeterElement) {
- pricePerSquareMeterElement.remove();
- }
- const priceNode = property.querySelector('h3');
- const price = findPrice(priceNode.textContent);
- const area = findArea(property.querySelector('li:nth-child(3)').textContent)
- const pricePerSquareMeter = (price / area).toLocaleString('es-CO', {style:'currency', currency: 'COP'}) + '/m\u00B2';
- pricePerSquareMeterElement = document.createElement('p');
- pricePerSquareMeterElement.className = 'pricePerSquareMeter';
- pricePerSquareMeterElement.style.fontSize = 'smaller';
- pricePerSquareMeterElement.style.fontWeight = 'normal';
- pricePerSquareMeterElement.appendChild(document.createTextNode(pricePerSquareMeter));
- priceNode.parentNode.insertBefore(pricePerSquareMeterElement, priceNode.nextSibling);
- } catch (e) {
- // Do nothing
- }
- }
- }
- function findPrice(value) {
- return parseFloat(value.match(/[\d.,]+/)[0].replace(/\./g, ''));
- }
- function findArea(value) {
- return parseFloat(value.match(/[\d.]+/)[0]);
- }
- const propertiesContainer = document.querySelector('.inmuebles-results');
- if (propertiesContainer) {
- setInterval(calculatePricePerSquareMeterInSearchResults, 1000);
- new MutationObserver(calculatePricePerSquareMeter).observe(propertiesContainer, {childList: true});
- }
- calculatePricePerSquareMeter();
- setTimeout(calculatePricePerSquareMeter, 2000);
- })();