Программирование > JavaScript & JScript
Время для загрузки изображения (локально)
ashes:
Скрипт создаёт предварительные thumbnail\'ы (на стороне клиента) для фотографий, которые выбираются через input type="file". Примерно в половине случаев, особенно когда изображения большие (но не всегда), скрипт не определяет ширину или высоту выбранного изображения (определяет = 0). Из-за этого не создаётся thumbnail (потому что он пропорционален исходному изображению).
Мне кажется, что это из-за того, что браузеру не хватает времени, чтобы подгрузить и вычислить размеры изображения. Можно ли как-нибудь увеличить это время, организовать задержку (setTimeout() не помогает, зато помогает предварительно вызванный alert(), но не могу же я пугать пользователей alert\'ами). Пожалуйста, помогите. Я просто измучалась с этим скриптом.
Спасибо.
CGVictor:
ashes
Подробнее? Про thumbnail (каким образом) и определение ширины/высоты.
ashes:
Протестировать и посмотреть код можно здесь:
http://www.tcomplex.ru/temp/test_boxes.html
В общих чертах функция работает очень просто:
file_src = document.getElementById(filefield).value;
(где filefield - id поля input type="file")
image_src = file_src.replace(/\\\\/g, \'/\');
***
var img = new Image();
img.src = image_src;
***
img_height = img.getAttribute(\'height\');
(здесь скрипт иногда не определяет высоту, и тогда thumbnail не создаётся)
CGVictor:
ashes
Что тестировать - немного не ясно, т.к. у меня, например, вообще ничего (кроме кнопки "обзор") не заработало.
Идею вкратце понял: ты хочешь перед отправкой файла на сервер показать превьюху.
Обломаю: в большем количестве случаев нарвешься на ограничения безопасности. Просто не даст прочитать локальный файл.
ashes:
Забыла сказать, что это версия - для IE (4 и выше). В Opere (или firefox\'e) она действительно не сработает. Если у тебя есть IE, можешь посмотреть с помощью него, пожалуйста?
При чём тут ограничения безопасности - пользователь на своём компьютере смотрит свой же файл... Это обычный тэг img. (Скрипт на javascript. Естественно, если javascript не разрешён, ничего не получится).
В любом случае, скрипт уже написан и работает. Он не срабатывает только иногда, но вовсе не из-за какой-то там безопасности, а из-за того, что браузеру не хватает времени (или чего то ещё), чтобы подгрузить картинку в свой кэш (или куда он там её грузит) и определить её геометрические размеры. Что мне с этим делать?
Навигация
Перейти к полной версии