Javascript Firefox为图像宽度和高度提供了错误的值

Javascript Firefox为图像宽度和高度提供了错误的值,javascript,jquery,html,css,Javascript,Jquery,Html,Css,从一个html5拖放插件中,我得到一个拖放图像的数据uri(或者从一个文件输入..)。然后我将其设置为图像src: $("#preview").attr("src",image); 现在,我需要根据图像尺寸进行一些操作。我尝试了两种方法: 1) -通过直接从uri数据获取图像高度和宽度(我从 2) 通过对html上创建的图像进行测试:(这里我创建了两个布尔值) var lt=函数(v1、v2){ 返回v1

从一个html5拖放插件中,我得到一个拖放图像的数据uri(或者从一个文件输入..)。然后我将其设置为图像src:

$("#preview").attr("src",image);
现在,我需要根据图像尺寸进行一些操作。我尝试了两种方法:

1) -通过直接从uri数据获取图像高度和宽度(我从

2) 通过对html上创建的图像进行测试:(这里我创建了两个布尔值)

var lt=函数(v1、v2){
返回v1
在铬合金上,我总是得到正确的尺寸,因此尺寸测试是正确的。然而,在firefox上它是不正确的(我得到了错误的宽度和高度值)。顺便说一下,我不是每次都尝试使用不同的图像格式(我只使用jpg图像)

我想了解为什么firfox在阅读高度和宽度方面不稳定。干杯

-编辑-

我想得到的图像的尺寸在一个隐藏的div中

<div id="prview_img_wrap" style="position:absolute;top:465px; left:200px;z-index:8; width:100px;height:100px;overflow:hidden;margin-left:5px; border:2px dashed white; visibility:hidden;">
    <img src="" id="preview" />
</div>

图像的高度和宽度仅在加载图像后可用。所以这是正确的方法:

var curHeight;
var curWidth;

function getImgSize(imgSrc){
    var newImg = new Image();
    newImg.onload = function () {
        curHeight = this.height;
        curWidth = this.width;
    };
    newImg.src = imgSrc;
}

图像的高度和宽度仅在加载图像后可用。所以这是正确的方法:

var curHeight;
var curWidth;

function getImgSize(imgSrc){
    var newImg = new Image();
    newImg.onload = function () {
        curHeight = this.height;
        curWidth = this.width;
    };
    newImg.src = imgSrc;
}

我希望该函数看起来更像
function getImgSize(imgSrc){var newImg=newimage();newImg.onload=function(){curHeight=newImg.height;curWidth=newImg.width;}newImg.src=imgSrc;}
应该直接读取_数据_uri,我不知道你添加的onload事件何时会发生…我还是会尝试一下,谢谢我没有定义为值..我告诉过你,该函数的值是直接读取的,没有加载事件。如果你没有onload事件,你可能会在图像下载之前测量它,这就是你得到错误答案的原因。写太长的javascript文件是否会导致浏览器出现问题?我希望该函数看起来更像
function getImgSize(imgSrc){var newImg=new Image();newImg.onload=function(){curHeight=newImg.height;curWidth=newImg.width;}newImg.src=imgSrc;}
应该直接读取_data_uri,我不知道您添加的onload事件何时会发生…我还是会尝试一下,谢谢我没有定义为值..,我告诉过您,该函数的值是直接读取的,无加载事件。如果没有加载事件,则可能会在图像下载之前测量图像,这就是为什么会得到错误答案。写入太长的javascript文件是否会导致浏览器出现问题?Ibu是正确的,您必须先下载图像,然后才能从浏览器端了解图像的宽度和高度。您需要在设置src属性之前连接onload事件。在分配onload事件之前,您有触发事件的危险,可能会完全错过它。Ibu是对的,您必须在从浏览器端知道图像的宽度和高度之前下载图像。您需要在设置src属性之前连接onload事件。在分配onload事件之前,您有触发事件的危险,可能会完全错过它。
var curHeight;
var curWidth;

function getImgSize(imgSrc){
    var newImg = new Image();
    newImg.onload = function () {
        curHeight = this.height;
        curWidth = this.width;
    };
    newImg.src = imgSrc;
}