Javascript: загрузка изображения из url и отображение
Я хочу предварить это тем, что я очень новичок в JavaScript. Я ценю твое терпение.
Я пытаюсь создать скрипт, который позволяет пользователю вводить имя в текстовую область, нажимать submit, и изображение отображается на основе этого имени.
мне удалось придумать это:
<html>
<body>
<form>
<input type="text" value="" id="imagename">
<input type="button" onclick="window.location.href='http://webpage.com/images/'+document.getElementById('imagename').value +'.png'" value="GO">
</form>
</body>
</html>
что почти делает именно то, что мне нужно-загружает изображение вокруг того, что вводит пользователь. Но то, что я хочу, не для того, чтобы изображение открылось в новом окно или загрузить на мой компьютер - я хочу, чтобы он отображался на странице при нажатии в виде изображения, например пример здесь.
Я уверен, что моя неопытность в Javascript является основной причиной того, что я не могу понять это. Сценарий выше, насколько я могу получить, не испортив все. Любая помощь приветствуется.
6 ответов
когда кнопка нажата, получите значение ввода и используйте его для создания элемента изображения, который добавляется к телу (или где-либо еще) :
<html>
<body>
<form>
<input type="text" id="imagename" value="" />
<input type="button" id="btn" value="GO" />
</form>
<script type="text/javascript">
document.getElementById('btn').onclick = function() {
var val = document.getElementById('imagename').value,
src = 'http://webpage.com/images/' + val +'.png',
img = document.createElement('img');
img.src = src;
document.body.appendChild(img);
}
</script>
</body>
</html>
то же самое в jQuery:
$('#btn').on('click', function() {
var img = $('<img />', {src : 'http://webpage.com/images/' + $('#imagename').val() +'.png'});
img.appendTo('body');
});
вы должны правильно генерировать url-адрес на основе входного значения. Единственная проблема - вы используете window.местоположение.хреф. Окно настроек.местоположение.href изменяет url-адрес текущего окна. Вероятно, вы хотите изменить атрибут src изображения.
<html>
<body>
<form>
<input type="text" value="" id="imagename">
<input type="button" onclick="var image = document.getElementById('the-image'); image.src='http://webpage.com/images/'+document.getElementById('imagename').value +'.png'" value="GO">
</form>
<img id="the-image">
</body>
</html>
вам просто не хватало тега изображения, чтобы изменить атрибут "src":
<html>
<body>
<form>
<input type="text" value="" id="imagename">
<input type="button" onclick="document.getElementById('img1').src = 'http://webpage.com/images/' + document.getElementById('imagename').value +'.png'" value="GO">
<br/>
<img id="img1" src="defaultimage.png" />
</form>
</body>
</html>
вы после чего-то вроде этого:
<html>
<head>
<title>Z Test</title>
</head>
<body>
<div id="img_home"></div>
<button onclick="addimage()" type="button">Add an image</button>
<script>
function addimage() {
var img = new Image();
img.src = "https://www.google.com/images/srpr/logo4w.png"
img_home.appendChild(img);
}
</script>
</body>
добавьте div с ID imgDiv и сделайте свой скрипт
document.getElementById('imgDiv').innerHTML='<img src=\'http://webpage.com/images/'+document.getElementById('imagename').value +'.png\'>'
Я пытался оставаться так близко к вашему оригиналу, как tp не перегружать вас jQuery и такими
во-первых, я настоятельно рекомендую использовать библиотеку или фреймворк для выполнения Javascript. Но просто для чего-то очень простого или для удовольствия учиться, это нормально. (вы можете использовать jquery, подчеркивание, knockoutjs, angular)
во-вторых, не рекомендуется привязываться непосредственно к onclick, мое первое предложение тоже так.
это сказал Что вам нужно, так это изменить src img на Вашей странице.
в том месте, где вы хотите, чтобы ваши изображения, вы должны вставить тег img, как это:
затем вам нужно изменить onclick, чтобы обновить атрибут src. Самый простой способ, который я могу придумать, - это как его
onclick=""document.getElementById('image-placeholder').src = 'http://webpage.com/images/' + document.getElementById('imagename').value + '.png"
опять же, это не лучший способ сделать это, но это начало. Я рекомендую вам попробовать jQuery и посмотреть, как вы можете выполнить тот же whitout с помощью onclick (tip... проверьте раздел на jquery о событиях)
Я сделал простую скрипку в качестве примера вашей проблемы, используя некоторые логотипы google... Тип 4 o 3 в коробке и вы будете два изображения разного размера. (огорченный.. У меня нет времени искать лучшие изображения в качестве примера)