Проблемы Chrome и Safari с динамическими координатами области карты

Мне действительно нужно сгенерировать координаты для области карты изображения через javascript. По какой-то причине Chrome и Safari не могут правильно сопоставить его. Это мой код простым способом:

dynamicMapping('#targetMap', [360,288,470,180,880,180,980,288]);

function dynamicMapping(targetMap, coordinates){

    var coords = '';

    for(i=0; i<coordinates.length; i++){
    coords += (coordinates[i]+',');     
    }

    $(targetMap).attr("coords", coords);
}

Предполагается, что координаты рисуют трапецию, которая отлично работает в Firefox, но не может отобразить первую точку в Chrome и Safari. Если я ввожу координаты в HTML, все работает отлично, но причина формы, проходящая через javascript, заставляет Webkit пропустить первую точку координат, что приводит к треугольнику вместо трапеции. Кто-нибудь знает, как с этим бороться?

заранее спасибо


person Carlos R. Batista    schedule 03.10.2012    source источник
comment
Используйте coordinates.join(', '), чтобы объединить элементы в список, разделенный запятыми. Это может даже исправить ваш код.   -  person Blender    schedule 03.10.2012
comment
@Blender Да, это исправило мой код, хотя и без дополнительного пробела после запятой (','). Не могли бы вы опубликовать это как ответ, чтобы я мог его выбрать?   -  person Carlos R. Batista    schedule 03.10.2012


Ответы (1)


Chrome, вероятно, неправильно анализирует вашу строку coords. Ваш код возвращает 1, 2, 3,, но Chrome ожидает 1, 2, 3.

Попробуйте использовать Array.join() для построения значения атрибута:

$('#targetMap').attr('coords', [360,288,470,180,880,180,980,288].join(', '));
person Blender    schedule 03.10.2012