处理图像加载的Javascript-event.target.result为空
Javascript handling image loading - event.target.result is empty
尝试分离画布上的图像加载功能。它就像一样完美
html
<label>Image File:</label>
<br/>
<input type="file" id="imageLoader" name="imageLoader" />
<canvas id="imageCanvas"></canvas>
javascript
var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);
var canvas = document.getElementById('imageCanvas');
var ctx = canvas.getContext('2d');
function handleImage(e){
var reader = new FileReader();
reader.onload = function(event){
var img = new Image();
img.onload = function(){
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img,0,0);
}
img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}
http://jsfiddle.net/influenztial/qy7h5/
但当我试图将其分离时,由于某种原因,它会因为event.target.result
而变为undefind
而卡住。
代码在这里
http://jsfiddle.net/qy7h5/1840/
怎么了?这方面有什么最佳实践吗?
您首先需要理解代码。试试我的代码,它运行良好。在我删除事件强制转换和Image onload强制转换的地方,还删除了Image作为参数,该参数曾被用作事件而非图像对象。
var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);
var canvas = document.getElementById('imageCanvas');
var ctx = canvas.getContext('2d');
function handleImage(e) {
var reader = new FileReader();
reader.onload = function(event) {
onReaderLoad(event);
}
reader.readAsDataURL(e.target.files[0]);
}
var onReaderLoad = function(event) {
var image = new Image();
image.onload = function() {
onImageLoad(image);
}
image.src = event.target.result;
}
var onImageLoad = function(img) {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
}
我在这里更新fiddle
相关文章:
- 此绑定与e.currentTarget与e.target
- Target=_blank don'我不在mozilla和IE工作
- jQuery event.target is_a_child_of(element)
- How to target an h1 inside an <a>?
- Form.target=window.opener.name不起作用
- JS new.target vs. instanceof
- $(e.target).find和template.find('input').value之间有什么区别
- 面料:“;鼠标:向下”;在event.target中未返回对象
- Target=带有OnClick JavaScript的空白链接
- 使用event.target.classlist区分按钮颜色
- Angular Cache $resource Result
- trim RegExp result
- target=“_空白“;使用自定义javascript生成的html页面
- AngularJS复选框通过$event.target更改问题
- 如何自动添加target=“_空白“;仅限于外部链接
- 在 ie8 中使用 e.target.tagName 或 .prop 的问题
- FusionCharts MVC - JSON Result 未绑定数据
- 将 target=“blank” 添加到带有 javascript 的链接中
- 处理图像加载的Javascript-event.target.result为空
- evt.target.result is empty?