Скрипт был переделан и работает во всех браузерах, кроме IE (EDGE) в них он сохраняет названия в другой кодировке, короче выводиться название города в виде
, и по этому дальнейшая их обработка не выходит. Привожу ниже сам скрипт и метод которым я его вызываю дальше для обработки.
<div class="geolocation" style="float: left; padding: 3px 0px 0px;">
<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<div style="float:left;">Ваш регион: </div><div style="float:left;" id="select-city-go"> выбор города</div>
<div id="modal_form">
<span id="modal_close">X</span>
<div id="spisok-gorodov">
<table>
<tr><td>Архангельск</td><td>Омск</td></tr>
<tr><td>Астрахань</td><td>Орел</td></tr>
<tr><td>Алматы</td><td>Оренбург</td></tr>
<tr><td>Владивосток</td><td>Пенза</td></tr>
<tr><td>Волгоград</td><td>Пермь</td></tr>
<tr><td>Вологда</td><td>Петрозаводск</td></tr>
<tr><td>Воронеж</td><td>Ростов-на-Дону</td></tr>
<tr><td>Екатеринбург</td><td>Рязань</td></tr>
<tr><td>Ижевск</td><td>Самара</td></tr>
<tr><td>Иркутск</td><td>Санкт-Петербург</td></tr>
<tr><td>Казань</td><td>Саратов</td></tr>
<tr><td>Кемерово</td><td>Тольятти</td></tr>
<tr><td>Красноярск</td><td>Томск</td></tr>
<tr><td>Краснодар</td><td>Тула</td></tr>
<tr><td>Липецк</td><td>Тюмень</td></tr>
<tr><td>Махачкала</td><td>Ульяновск</td></tr>
<tr><td>Москва</td><td>Уфа</td></tr>
<tr><td>Набережные Челны</td><td>Хабаровск</td></tr>
<tr><td>Нижний Новгород</td><td>Челябинск</td></tr>
<tr><td>Новокузнецк</td><td>Ялта</td></tr>
<tr><td>Новосибирск</td><td>Ярославль</td></tr>
</table>
<a class="button_geo" href=javascript:document.location.reload()>ВЫБРАТЬ</a>
</div>
<div id="insol-map-modal"></div>
</div>
<div id="overlay"></div>
<script charset="utf-8">
var sBounds = [];
jQuery('#select-city-go').click(function() {
jQuery('#overlay').fadeIn(400,
function(){
jQuery('#modal_form')
.css('display', 'block')
.animate({opacity: 1,}, 200,null,function() {
if (sBounds.length) myMapMod.setBounds(sBounds, { checkZoomRange: true });
sBounds = [];
});
});
jQuery('#select-city-go').click( function(event){
event.preventDefault();
jQuery('#overlay').fadeIn(400,
function(){
jQuery('#modal_form')
.css('display', 'block')
.animate({opacity: 1, top: '4%'}, 200);
});
});
jQuery('#modal_close, #overlay').click( function(){
jQuery('#modal_form')
.animate({opacity: 0, top: '4%'}, 200,
function(){
jQuery(this).css('display', 'none');
jQuery('#overlay').fadeOut(400);
}
);
});
});
function setCookie(name, value, seconds = 2592000) {
var date = new Date(new Date().getTime() + seconds * 1000);
document.cookie = name + "=" + value + ";path=/;expires=" + date.toUTCString();
}
function getCookie(name) {
var r = document.cookie.match("(^|;)?" + name + "=([^;]*)(;|$)");
if (r) return r[2];
else return "";
}
function deleteCookie(name) {
var date = new Date();
date.setTime(date.getTime() - 1);
document.cookie = name += "=; expires=" + date.toGMTString();
}
//jQuery("#spisok-gorodov td").click(function(){ alert(jQuery(this).text()); });
var myMapMod;
ymaps.ready(function () {
geolocation = ymaps.geolocation;
myMapMod = new ymaps.Map('insol-map-modal', {
center: [47.22, 39.71],
zoom: 12,
controls: []
});
var city = getCookie('city_name');
if (!city) {
geolocation.get({
provider: 'yandex',
mapStateAutoApply: true
}).then(function (result) {
result.geoObjects.options.set('preset', 'islands#blueIcon');
myMapMod.geoObjects.add(result.geoObjects);
var firstGeoObject = result.geoObjects.get(0);
coords = firstGeoObject.geometry.getCoordinates();
myMapMod.setZoom(12);
city_name=firstGeoObject.properties.get('name');
jQuery('#select-city-go').html(city_name);
setCookie("city_name", city_name);
});
} else {
jQuery('#select-city-go').html(city);
ymaps.geocode(city, { results: 1 }).then(function (res) {
var firstGeoObject = res.geoObjects.get(0),
coords = firstGeoObject.geometry.getCoordinates();
sBounds = firstGeoObject.properties.get('boundedBy');
myMapMod.geoObjects.add(firstGeoObject);
});
}
jQuery("#spisok-gorodov td").click(function(){
city_click=jQuery(this).text();
jQuery('#select-city-go').html(city_click);
setCookie("city_name", city_click);
ymaps.geocode(city_click, { results: 1 }).then(function (res) {
var firstGeoObject = res.geoObjects.get(0),
coords = firstGeoObject.geometry.getCoordinates(),
bounds = firstGeoObject.properties.get('boundedBy');
myMapMod.geoObjects.add(firstGeoObject);
myMapMod.setBounds(bounds, { checkZoomRange: true });
});
});
mySearchControl = new ymaps.control.SearchControl({
options: {
noPlacemark: true,
position: { left: 0, top: 0 }
}
});
// Результаты поиска будем помещать в коллекцию.
mySearchResults = new ymaps.GeoObjectCollection(null, {
hintContentLayout: ymaps.templateLayoutFactory.createClass('$[properties.name]')
});
myMapMod.controls.add(mySearchControl);
myMapMod.geoObjects.add(mySearchResults);
// Выбранный результат помещаем в коллекцию.
mySearchControl.events.add('resultselect', function (e) {
var index = e.get('index');
var results = mySearchControl.getResultsArray(); coords = results[index].geometry.getCoordinates();
myMapMod.setZoom(12);
city_name=results[index].properties.get('name');
jQuery('#select-city-go').html(city_name);
setCookie("city_name", city_name);
mySearchControl.getResult(index).then(function (res) {
mySearchResults.add(res);
});
}).add('submit', function () {
mySearchResults.removeAll();
});
});
</script>
</div>
Кто подскажет как можно его заставить работать в IE ? На сколько понял нужно либо кодировать, декодировать . Но как не могу сделать.