Если у вас есть код ES6 +, который вы хотите сделать совместимым для ES5, для передачи синтаксиса , вы можете сделать это автоматически с помощью транспилятора, например Babel . Подключение вашего кода дает такой результат:
points.map(function (p, i) {
return L.marker(p).bindPopup("marker" + ('<strong>' + pointData[i].cityName + '</strong>' + ', ' + '</br>' + pointData[i].discrip + "<br /><a class='fancybox-thumb' ' style='width:150px;' rel='fancybox-button' rel='fancybox-thumb' data-fancybox-group='" + pointData[i].popup + "' title='" + pointData[i].discrip + " ' href='graphic/" + pointData[i].popup + "' ><img src='graphic/" + pointData[i].popup + "' alt='Image' ' style='width:150px;' ></a>" + "<br/><a href='http://www.google.com' target='_blank'>Cedellion Report</a>"));
}).forEach(function (marker) {
map.addLayer(marker);
oms.addMarker(marker);
});
Вы также должны были перенести литерал шаблона - объявите строки и объедините их с +
вместо использования синтаксиса ${}
. Кроме того, вам необходимо return
L.marker...
от обратного вызова .map
.
Обратите внимание, что это передает только синтаксис , а не методы - если вы используете методы ES6 + (например, Array.prototype.includes
), Babel не будет достаточно - вам либо потребуется изменить код вручную, чтобы использовать метод ES5 (например, indexOf
), или, что еще лучше, включить полифилл ( пример ) для определения методов ES6 + на клиентах, просматривающих вашу страницу.