Convertor
// source https://jsbin.com/fuzaxot
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Convertor</title>
</head>
<body>
<input id = "volume"> </input>
<select id = "from"> </select>
<span id = "result"></span>
<select id = "to"></select>
<script id="jsbin-javascript">
let xhr = new XMLHttpRequest();
let url = 'https://api.exchangeratesapi.io/latest';
let rates; //Global variable;
xhr.addEventListener("readystatechange", function() {
if (xhr.readyState != 4) {
return;
}
let apiObj = JSON.parse(xhr.response);
rates = apiObj.rates;
rates[apiObj.base] = 1; //Rhino 6.2: ex rates["MYLOVE"] = 999;
let currencies = Object.keys(rates);
fillSelect(currencies, from);
fillSelect(currencies, to);
});
xhr.open("GET", url);
xhr.send();
from.addEventListener("change", setResult); // passing function as function;
to.addEventListener("change", setResult);
volume.addEventListener("change", setResult);
function setResult() {
result.innerText = volume.value * rates[to.value] / rates[from.value]
};
function fillSelect(arr, sel) {
sel.innerHTML = "";
arr.forEach((a) => {
let opt = document.createElement("option")
opt.innerText = a;
sel.appendChild(opt);
})
}
</script>
<script id="jsbin-source-javascript" type="text/javascript">let xhr = new XMLHttpRequest();
let url = 'https://api.exchangeratesapi.io/latest';
let rates; //Global variable;
xhr.addEventListener("readystatechange", function() {
if (xhr.readyState != 4) {
return;
}
let apiObj = JSON.parse(xhr.response);
rates = apiObj.rates;
rates[apiObj.base] = 1; //Rhino 6.2: ex rates["MYLOVE"] = 999;
let currencies = Object.keys(rates);
fillSelect(currencies, from);
fillSelect(currencies, to);
});
xhr.open("GET", url);
xhr.send();
from.addEventListener("change", setResult); // passing function as function;
to.addEventListener("change", setResult);
volume.addEventListener("change", setResult);
function setResult() {
result.innerText = volume.value * rates[to.value] / rates[from.value]
};
function fillSelect(arr, sel) {
sel.innerHTML = "";
arr.forEach((a) => {
let opt = document.createElement("option")
opt.innerText = a;
sel.appendChild(opt);
})
}</script></body>
</html>
let xhr = new XMLHttpRequest();
let url = 'https://api.exchangeratesapi.io/latest';
let rates; //Global variable;
xhr.addEventListener("readystatechange", function() {
if (xhr.readyState != 4) {
return;
}
let apiObj = JSON.parse(xhr.response);
rates = apiObj.rates;
rates[apiObj.base] = 1; //Rhino 6.2: ex rates["MYLOVE"] = 999;
let currencies = Object.keys(rates);
fillSelect(currencies, from);
fillSelect(currencies, to);
});
xhr.open("GET", url);
xhr.send();
from.addEventListener("change", setResult); // passing function as function;
to.addEventListener("change", setResult);
volume.addEventListener("change", setResult);
function setResult() {
result.innerText = volume.value * rates[to.value] / rates[from.value]
};
function fillSelect(arr, sel) {
sel.innerHTML = "";
arr.forEach((a) => {
let opt = document.createElement("option")
opt.innerText = a;
sel.appendChild(opt);
})
}