JSFiddle - React, Tailwind, and code Playground
HTML
Точка прибытия: <select id="arrivalPoint"></select>
JavaScript
// This line taken from J50Npi.min.js (within this repo)
var J50Npi = {
currentScript: null,
getJSON: function(url, data, callback) {
var src = url + (url.indexOf("?")+1 ? "&" : "?");
var head = document.getElementsByTagName("head")[0];
var newScript = document.createElement("script");
var params = [];
var param_name = ""
this.success = callback;
data["callback"] = callback;
for(param_name in data){
params.push(param_name + "=" + encodeURIComponent(data[param_name]));
}
src += params.join("&")
newScript.type = "text/javascript";
newScript.src = src;
if(this.currentScript) head.removeChild(currentScript);
head.appendChild(newScript);
},
success: null
};
var url2 = 'http://emspost.ru/api/rest/?method=ems.get.locations&callback=arrivalPointRender';
var data2 = {plain: "true", type:"russia"};
// We need a function callback to be executed after the response is received
var arrivalPointRender = function(data2){
var html = '', selected = false;
for(var i = 0; i < data2.rsp.locations.length; i++){
if(data2.rsp.locations[i].type=="cities") {data2.rsp.locations[i].type="(город)"};
if(data2.rsp.locations[i].type=="regions") {data2.rsp.locations[i].type="(регион)"};
html += '<option value="'+data2.rsp.locations[i].value+'"'+(selected?'':' selected')+'>'+data2.rsp.locations[i].name+' '+data2.rsp.locations[i].type +'</option>'
selected = false
}
document.getElementById('arrivalPoint').innerHTML = html;
}
J50Npi.getJSON(url2, data2, arrivalPointRender);
var urlCalcPost = 'http://emspost.ru/api/rest?method=ems.calculate&callback=CalcPost&from=city--moskva&to=region--omskaja-oblast&weight=1.5';
var dataCalcPost = {plain: "true"};
var CalcPost = function(dataCalcPost){
...