Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chrome上的Javascript TypeError事件异常_Javascript_Html_Google Chrome - Fatal编程技术网

Chrome上的Javascript 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,

我正在尝试为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,
        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。。。那我就不知道了。