У меня есть редактор HTML, который вставляет элементы из предопределенных кнопок с помощью javascript и хотел бы добавить кнопку, чтобы иметь возможность опубликовать миниатюру загруженного изображения со ссылкой, чтобы просмотреть его в полном размере. Я создал следующий код, но он не работает и всегда вставляет изображение размера 100X100. Может ли кто-нибудь предложить лучший способ, который работает?Как изменить размер изображения в javascript
// insert HTML code
insertHtml: function (url, title) {
var imgHeight;
var imgWidth;
function setHTMLImageSize() {
imgHeight = this.height;
imgWidth = this.width;
var ImageRatio = (imgHeight/imgWidth);
if (imgWidth > 100) {
imgWidth = 100;
imgHeight = (imgWidth * ImageRatio);
}
return true;
}
var myImage = new Image();
myImage.name = url;
myImage.onload = setHTMLImageSize;
myImage.src = url;
if (imgWidth = 0) {
imgWidth = 100;
}
if (imgHeight = 0) {
imgHeight = 100;
}
this.get_designPanel().insertHTML("<a href=\"" + url + "\" target=\"" + "_blank" + "\" style=\"" + "text-decoration: none" + "\" ><img src=\"" + url + "\" title=\"" + title + "\" width=\"" + imgWidth + "\" height=\"" + imgHeight + "\" /></a><br/>click image to View full size<br/>");
}
Done с событием OnLoad SetHTMLImageSize называют –
@DavidDIlley - Да, kindof. Этот вызов влияет на изображение в вашем коде, известном как 'myImage'. Этот вызов 'SetHTMLImageSize' изменяет значения, которые' imgWidth' и 'imgHeight'. К сожалению, они используются до того, как они получили значение. Пробег через код видит, что они оба ничего не держат (не ноль, но ничего - то есть «undefined»). Кроме того, в вызове, где вы проверяете, были ли они равны нулю, вы ошибочно использовали '=' (set to) а не '==' (равно). Добавьте несколько вызовов в 'console.log', и вы увидите, что код не выполняется в том порядке, в котором вы, похоже, думаете, что это так. – enhzflep
Спасибо, что указали single = out ... Я пропустил это ... Я мог бы использовать CSS, если бы я просто хотел установить изображение «thumbnail» на предопределенный размер, но я на самом деле пытаюсь масштабировать изображение и все еще поддерживайте исходное соотношение ширины и высоты, используя максимальную ширину, чтобы она не искажалась ... –