Мне нужно разрешить веб-пользователю вводить URL-адрес изображения, и я хочу, чтобы у пользователя было визуальное подтверждение того, что URL действителен (или нет).
Мне бы хотелось, чтобы, если пользователь вводит:
- ничего, будет отображаться изображение по умолчанию (не найдено).
http://example.com/ValidImageUrl.any_or_no_extension
, он примет его и отобразит изображение.
hxxp://example.com/ValidImageUrl.any_or_no_extension
, будет отображаться изображение по умолчанию (не найдено)
http://example.com/INVALID_imageurl.any_or_no_extension
, будет отображаться изображение по умолчанию (не найдено). По сути, если ссылка не 200, она должна отображать значение по умолчанию
http://example.com/asdf?qwerty&t=10982741238947
, (при условии, что оно действительно), оно автоматически определит, является ли оно действительным изображением, и отобразит его, если оно действительно, в противном случае отобразит изображение по умолчанию (не найдено). Это самый трудный случай для захвата, но он становится все более важным в современном мире встроенных flickr & picassa ... Но если браузер может обнаружить его как изображение и отобразить его, то javascript должен быть в состоянии обнаружить его и определить его особенности .
Ниже приведен чрезвычайно упрощенный пример:
<input id="GivenUrl" onblur="UpdateImage()"/>
<img id="UserImage"/>
<script type="text/javascript">
var TextBox = document.getElementById("GivenUrl");
var Image = document.getElementById("UserImage");
if (Image.value == "")
{
UserImage.setAttribute("src", "MyDefaultImage.jpg");
}else{
UserImage.setAttribute("src", encodeURI(TextBox.value));
}
</script>
И, наконец, мои ограничения: я бы оптимально хотел, чтобы решение было чистым HTML / javascript, все обрабатывалось на стороне клиента (пользователя). Чуть менее благоприятные решения включают обработку на стороне сервера .Net, которая возможна, но определенно не оптимальна ...
Есть идеи?
Пожалуйста, не обращайте внимания на любые ошибки кодирования, описанные выше, поскольку в данный момент я не нахожусь на машине, где я могу проверить свой собственный код ...