Sinker
11.03.2005, 16:07
Поиск юзал, ничего похожего не нашел, хотя помню, что с год назад задавал тут похожий вопрос...
Есть <form... , в ней <input type=file...
Человек выбирает файл на своем компе, после этого по onclick или onchange (в зависимости от браузера) нужно отобразить эту картинку (если это картинка).
Понял как это сделать в IE, почти всегда работает в Mozilla, но вот чтобы это заработало в Opera.... Помогите, PLZ.
Сейчас это выглядит вот так:
my_image_src=document.forms["f"].elements["fileid"].value;
if (isMozilla)
{
//Mozilla
my_image_src = my_image_src.replace(/\\/g, '/');
my_image_src = my_image_src.replace(/:/, '|');
my_image_src = "file:///" + my_image_src;
my_image[id].src=my_image_src;
}
else if (isOpera)
{
//opera
my_image_src = my_image_src.replace(/\\/g, '/');
my_image_src = "file://localhost/" + my_image_src;
my_image[id].src=my_image_src;
}
else
{
//IE
my_image_src = unescape(my_image_src);
my_image_src = my_image_src.replace(/\+/g, '%20');
my_image[id].src=my_image_src;
}
Самое интересное, что если посмотреть свойства этой картинки, то урл будет иметь вид file://localhost/d:/foto/002.jpg. Так вот если открыть в опере новое окно и вставить туда этот урл, то картинка откроется нормально. После перехода в первое окно - картинка будет показана и там. Т.е. я так понимаю, что описанный код срабатывает, когда картинка уже есть в кеше оперы... Поправьте меня, PLZ.
Есть <form... , в ней <input type=file...
Человек выбирает файл на своем компе, после этого по onclick или onchange (в зависимости от браузера) нужно отобразить эту картинку (если это картинка).
Понял как это сделать в IE, почти всегда работает в Mozilla, но вот чтобы это заработало в Opera.... Помогите, PLZ.
Сейчас это выглядит вот так:
my_image_src=document.forms["f"].elements["fileid"].value;
if (isMozilla)
{
//Mozilla
my_image_src = my_image_src.replace(/\\/g, '/');
my_image_src = my_image_src.replace(/:/, '|');
my_image_src = "file:///" + my_image_src;
my_image[id].src=my_image_src;
}
else if (isOpera)
{
//opera
my_image_src = my_image_src.replace(/\\/g, '/');
my_image_src = "file://localhost/" + my_image_src;
my_image[id].src=my_image_src;
}
else
{
//IE
my_image_src = unescape(my_image_src);
my_image_src = my_image_src.replace(/\+/g, '%20');
my_image[id].src=my_image_src;
}
Самое интересное, что если посмотреть свойства этой картинки, то урл будет иметь вид file://localhost/d:/foto/002.jpg. Так вот если открыть в опере новое окно и вставить туда этот урл, то картинка откроется нормально. После перехода в первое окно - картинка будет показана и там. Т.е. я так понимаю, что описанный код срабатывает, когда картинка уже есть в кеше оперы... Поправьте меня, PLZ.