none
js img. onreadystatechange事件在IE下不触发 RRS feed

  • 问题

  • ie浏览器下:在w3c标准中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

        <title></title>

    </head>

    <body>

        <input type="file" id="fileUpload" />

        <input type="button" onclick="testF()"  value="TestImgSize"/>

        <div id="divShow"></div>

        <script language="javascript" type="text/javascript">

            function testF() {

               // alert(f());

                GetImageSize(f());

            }

     

            function f() {

                var imgAddress = document.getElementById("fileUpload");

                if (imgAddress.value != "") {

                    if (document.selection) {//for ie 7,8

                        imgAddress.select();

                         return document.selection.createRange().text;

                        //return imgAddress.value;

                    }

                    else if (imgAddress.files[0].getAsDataURL) {//for firefox

     

                        return imgAddress.files[0].getAsDataURL();

                    }

                    else if (imgAddress.value) {//for ie 6

                        return  imgAddress.value;

                    }

                    else {

                        return "";

                       // alert("加載失敗!");

                    }

                }

            }

            function GetImageSize(p_image) {

                var image = new Image();

                var o_ready;

                image.src = p_image;

     

                image.onreadystatechange = function () { //onreadystatechange

                    alert("aaa");

                    if (image.readyState == "complete") {

                        alert(p_image);

                        imageW = image.width;

                        imageH = image.height;

                        alert(imageW);

                        alert(imageH);

                    }

                    o_ready = "ok";

                }

                if (image.readyState == "complete" && o_ready != "ok") {

                    imageW = image.width;

                    imageH = image.height;

                    alert(imageW);

                    alert(imageH);

                }

                image.onload = function () {

                    if (image.complete == true) {

                        imageW = image.width;

                        imageH = image.height;

                        alert(imageW);

                        alert(imageH);

                    }

                }

                image.onerror = function () {

                    alert("失敗");

                }

                o_ready = "";

            }

     

         </script>

     

     

    </body>

    </html>

     

    ===获取上传图片的大小。。。(在ie8下, image.onreadystatechange事件不执行)

    需求合理的解决方案....


     

    2011年1月20日 9:01

答案

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml"> 加上这句不执行,不加这句会执行image.onreadystatechange事件

    • 已标记为答案 Mog Liang 2011年2月7日 6:40
    2011年1月26日 9:18

全部回复