Chrome上的Javascript TypeError事件异常
我正在尝试为Chrome添加一个FileReader onload事件,它在Firefox上运行良好,但在我尝试Chrome时抛出一个TypeError异常 这是我的密码:Chrome上的Javascript TypeError事件异常,javascript,html,google-chrome,Javascript,Html,Google Chrome,我正在尝试为Chrome添加一个FileReader onload事件,它在Firefox上运行良好,但在我尝试Chrome时抛出一个TypeError异常 这是我的密码: function random(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function handleDrop(event) { var dt = event.dataTransfer,
function random(min, max)
{
return Math.floor(Math.random() * (max - min + 1) + min);
}
function handleDrop(event) {
var dt = event.dataTransfer,
files = dt.files,
count = files.length;
event.stopPropagation();
event.preventDefault();
for (var i = 0; i < count; i++)
{
var fileReader = new FileReader();
fileReader.addEventListener("loadend", function(e) {
xn = random(0, $('canvas').attr('width'));
yn = random(0, $('canvas').attr('height'));
widthn = random(100, 200);
$("canvas").drawImage({
source: e.target.result,
fromCenter: false,
x: xn,
y: yn,
width: widthn
});
delete e.target.result;
} , false);
fileReader.readAsDataURL(files[i]);
}
}
$(document).ready(function()
{
var dropContainer = document.getElementById("content");
dropContainer.addEventListener("dragenter", function(event){event.stopPropagation();event.preventDefault();}, false);
dropContainer.addEventListener("dragover", function(event){event.stopPropagation();event.preventDefault();}, false);
dropContainer.addEventListener("drop", handleDrop, false);
});
如何在Chrome中修复此问题?在将CSS属性发送到“random()”函数之前,您可能应该确保将CSS属性显式转换为数字
// ...
xn = random(0, ~~$('canvas').attr('width'));
yn = random(0, ~~$('canvas').attr('height'));
当然,您可以使用parseInt()
;这只是一个例子;因此,或者:
// ...
xn = random(0, parseInt($('canvas').attr('width'), 10));
yn = random(0, parseInt($('canvas').attr('height'), 10));
当然,变量也应该用var
声明:
// ...
var xn = random(0, ~~$('canvas').attr('width'));
var yn = random(0, ~~$('canvas').attr('height'));
在将CSS属性发送到“random()”函数之前,您可能应该确保将它们显式地转换为数字
// ...
xn = random(0, ~~$('canvas').attr('width'));
yn = random(0, ~~$('canvas').attr('height'));
当然,您可以使用parseInt()
;这只是一个例子;因此,或者:
// ...
xn = random(0, parseInt($('canvas').attr('width'), 10));
yn = random(0, parseInt($('canvas').attr('height'), 10));
当然,变量也应该用var
声明:
// ...
var xn = random(0, ~~$('canvas').attr('width'));
var yn = random(0, ~~$('canvas').attr('height'));
显然,
FileReader
没有addEventListener
。(TypeError:Object#没有方法'addEventListener'
)
使用:
显然,
FileReader
没有addEventListener
。(TypeError:Object#没有方法'addEventListener'
)
使用:
这只会使随机函数正常工作:P(对于
random(5,10)
和random(“5,10”)
,我得到了非常不同的结果),但它不会导致TypeErrorHmm。。。嗯,我不知道。这只会使随机函数正常工作:P(对于random(5,10)
和random(“5,10”)
),我得到非常不同的结果),但它不会导致TypeErrorHmm。。。那我就不知道了。