Полный код JS
<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
ymaps.ready(init);
function clear(){
console.log("test 1:");
console.log(document.clean === clean); console.log(window.clean === clean);
myCollection.removeAll();
geolocation.get({
provider: 'yandex',
mapStateAutoApply: true
}).then(function (result) {
result.geoObjects.get(0).properties.set({});
myMap.geoObjects.add(result.geoObjects);
});
clear();
}
function init() {
//создаём карту
var geolocation = ymaps.geolocation,
myMap = new ymaps.Map('map', {
center: [54.724403, 55.970748],
zoom: 10,
controls: []
});
var myCollection = new ymaps.GeoObjectCollection();
//отключение движения карты и масштабирования
myMap.behaviors.disable(['drag','rightMouseButtonMagnifier', 'scrollZoom', 'dblClickZoom', 'multiTouch']);
document.getElementById('load').onclick = function () {
if (document.getElementById('start').value != null){
//Строим Маршрут, по точкам, с учётом пробок
var start = document.getElementById('start').value;
var finish = document.getElementById('finish').value;
ymaps.route([start, finish], {avoidTrafficJams: true, mapStateAutoApply: true}).then(
function (route) {
myCollection.add(route);
myMap.geoObjects.add(myCollection);
document.getElementById('city').value = (route.getLength()/1000).toFixed(1) + ' километров';
document.getElementById('timenone').value = timeformat(route.getTime());
document.getElementById('timeprob').value = timeformat(route.getJamsTime());
document.getElementById('price').value = price((route.getLength()/1000).toFixed(1)) + ' руб';
},
function (error) {
if(error.message == "can't construct a route") {
alert("При построении маршрута возникла ошибка.\r\nПопробуйте изменить адреса или перезагрузить страницу.");
} else {
alert("Возникла ошибка: " + error.message);
}
}
);
}
}
//функция расчета стоимости
function price(length){
var price = 30 + (length * 12);
if (price < 100) { price = 100;}
return price.toFixed(0);
}
//функция правильного вывода часов и минут
function timeformat(time){
var twotime = time = time /60;
if (time >= 60){
time = Math.floor(time / 60);
var minuts = twotime - (time * 60);
var hour;
switch (true) {
case time == 1:
hour = ' час';
break
case time >= 2 && time < 5:
hour = ' часа';
break
case time > 5:
hour = ' часов';
break
default:
hour = ' час';
break
}
minuts = minutstime(minuts);
return time + hour +' '+ minuts;
}
return minutstime(twotime);
}
// вспомогательная функция для правильного вывода минут
function minutstime(minuts){
minuts = minuts.toFixed(0);
var timemin;
switch (true) {
case minuts == 1:
timemin = minuts + ' минута';
break
case timemin >= 2 && timemin < 5:
timemin = minuts + ' минуты';
break
case timemin > 5:
timemin = minuts + ' минут';
break
default:
timemin = minuts + ' минут';
break
}
return(timemin);
}
};
И HTML
<body style="padding:0px; margin:0px; height:2000px;">
<div id="map" style="width: 100%; position: absolute; height: 70%; padding:0px; margin:0px; z-index:1;"></div>
<div style="padding:10px; position: absolute; z-index:2; background:#FFF; margin:30px 25% 0 0; opacity:.8;">
<form method="post" action="javascript:insert()">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Начало:</td>
<td><input type="text" onkeydown="window.clear()" size="20" id="start" value="Алкино-2" ></td>
</tr>
<tr>
<td>Финиш:</td>
<td><input type="text" onkeydown="window.clear()" size="20" id="finish" value="Уфа, Путейская 1Б" ></td>
</tr>
<tr></tr>
<tr>
<td>Расстояние:</td>
<td><input type="text" size="20" id="city" ></td>
</tr>
<tr>
<td>Время без учета пробок:</td>
<td><input type="text" size="20" id="timenone"></td>
</tr>
<tr>
<td>Время с учетом пробок:</td>
<td><input type="text" size="20" id="timeprob"></td>
</tr>
<tr>
<td>Стоимость:</td>
<td><input type="text" size="20" id="price"></td>
</tr>
<tr>
<INPUT TYPE="SUBMIT" VALUE ="Принять заказ"></form>
<button id="load">Расчитать</button>
<button onclick="return location.href = 'http://test.devastor.ru/taxi/zakaz.php'" > ЗАКАЗЫ</button>
<button onclick="console.log('test 2:'); console.log(document.clean === clean); console.log(window.clean === clean);">click</button>
</tr>
</table>
</div>
</body>
На JS пишу второй день, так что сильно палками прошу не бить
При этом console.log("test 1:"); не срабатывает однозначно даже при явном вызове ниже