У меня довольно простая проблема, но я стал не понимаем, что вызывает проблему. В одном из моих приложений я использую jCrop как небольшую надстройку для обрезки изображений для размещения в баннерах/заголовках и т.д. Эти шаги будут предприняты:
1) Select an image (using CKFinder for this, CKFinder returns the image path to an input field)
2) Click a button to load the image
3) Crop the image
4) Save the image
примерно в 75% случаев все идет по плану, однако в других 25% случаев jCrop не загружает область обрезки и оставляет ее пустой. Вот код jQuery, который я использую:
jQuery('#selectimg').live('click', function(e) {
e.preventDefault();
var newsrc = jQuery('#img2').val();
jQuery('#cropbox').attr('src', newsrc);
var jcrop_api = jQuery.Jcrop('#cropbox', {
boxWidth: 700,
boxHeight: 700,
onSelect: updateCoords,
onChange: updateCoords
});
//Some other JS code come here for buttons (they work all the time)
});
Я заметил, что когда я оставил часть, где #cropbox трансформируется в области подкачки, то изображение загружается просто отлично, поэтому ошибка заключается в части var = jcrop_api
, но я медленно начинаю думать, что там не является решением для этого...
Это то, что я пробовал до сих пор:
Создание div <div id="cropper-box"></div>
и использование jQuery('#cropper-box').append('<img src="" id="cropbox" />');
, а затем установите значение. Я попробовал то же самое, но установил изображение src за 1 шаг, а не потом.
Я попытался поместить заполнитель на страницу <img src="placeholder.png" id="cropbox" />
и изменить источник при нажатии кнопки. Это работает, но cropperarea остается размером с изображение (300x180px или что-то еще) и не становится больше, как должно быть.
//Правка:
Попытка еще одного показала мне, что источник изображения заменяется должным образом (используя Firefox, чтобы показать источник для выделенного текста), я дважды проверил URL-адрес, но это был правильный URL-адрес и рабочий образ.
В месте, где должен располагаться обрезчик, есть пятно размером около 10x10 пикселей, в котором появляется значок обрезки (знак плюса).. но, как было сказано ранее: изображение не отображается.
//Правка 2:
Итак, я взял источники для первой и второй попыток для одного и того же изображения. Как было сказано перед первой попыткой, изображение не будет загружаться должным образом, а вторая попытка - (только когда вторая попытка - это одно и то же изображение (!!)).
Выбранный источник страницы показывает 1 разницу, которая есть, сначала попробуйте:
<img style="position: absolute; width: 0px; height: 0px;" src="http://95.142.175.17/uploads/files/Desert.jpg">
вторая попытка:
<img style="position: absolute; width: 700px; height: 525px;" src="http://95.142.175.17/uploads/files/Desert.jpg">
Я думаю, что это образ, заменяемый jCrop, но это полная загадка, почему он ставит 0 heigth/width там, где первый и правильный размеры второй раз.