You are on page 1of 2

// ==UserScript==

// @name change unit of balance on freebitco.in


// @namespace http://5th.ch/
// @version 0.5
// @description change unit of balance on freebitco.in
// @author @koma5
// @match https://freebitco.in/*
// @grant none
// @downloadURL
https://gist.githubusercontent.com/koma5/4eccd9251d5874d454a197958e78135c/raw/chang
e_unit_of_balance_freebitco.in.js
// @updateURL
https://gist.githubusercontent.com/koma5/4eccd9251d5874d454a197958e78135c/raw/chang
e_unit_of_balance_freebitco.in.js
// ==/UserScript==

(function() {
'use strict';
function changeDOM() {

var unitMap = {mBTC : { unit : 'mBTC', factor : 1e3 },


satoshi : { unit : 'satoshi', factor : 1e8 },
microBTC : { unit : 'μBTC', factor : 1e6 }
};

var unitChoice = unitMap.microBTC;

var balanceLi = document.getElementById("balance").parentNode;

//remove eventListener otherwise we run into a loop


balanceLi.removeEventListener('DOMNodeInserted', changeDOM);

var balance = document.getElementById("balance").innerHTML;


balance *= unitChoice.factor;

//remove balance and textnode


while (balanceLi.hasChildNodes()) {
balanceLi.removeChild(balanceLi.firstChild);
}

//recreate balance span


var balanceSpan = document.createElement("span");
balanceSpan.setAttribute('id', 'balance');

var balanceSpanText = document.createTextNode(balance);


balanceSpan.appendChild(balanceSpanText);

//recreate textnode
var balanceLiUnitText = document.createTextNode(' ' + unitChoice.unit);

//insert balance and textnode into existing and empty blanaceli


balanceLi.appendChild(balanceSpan);
balanceLi.appendChild(balanceLiUnitText);

//readd removed eventListener


balanceLi.addEventListener('DOMNodeInserted', changeDOM, false);

console.log('changed to ' + balance + ' ' + unitChoice.unit);


}
changeDOM();

var balanceLi = document.getElementById("balance").parentNode;


balanceLi.addEventListener('DOMNodeInserted', changeDOM, false);

})();

You might also like