1

我试图从同一域内的图像路径(http 路径)加载图像,我一直使用的方法是通过 XmlHttpRequest 并且它在 Chrome 上正常工作,然后我在 HTML5 中的 img 标记内显示图像,

当我尝试在IE10中加载它时,它不起作用,状态和readyState都正常,但是图像不会加载,当我检查XmlHttpRequest属性'response'时,它在Chrome上返回了blob对象,但是它在 IE10 上返回 undefined,

注意 :我在 Chrome 上使用了 onload 事件,但在 IE 上我使用了 onreadystatechanged

这是我正在使用的代码:

           var xhr = new XMLHttpRequest();
           xhr.open("GET", "http://pathtomyimage/example.jpg", true);
           xhr.responseType = "blob";
           xhr.onreadystatechange = function (e) {
               if (xhr.readyState==4 && xhr.status==200) {
                   alert(xhr.response+" in IE");
                   var i;
                   i= document.getElementById("bg");
                   i.src = URL.createObjectURL(xhr.response);
               }
           };
           xhr.onload = function (e) {
               if (this.status == 200) {
                   var myBlob = this.response;
                   alert(myBlob+" inChrome");
                   var i;
                   i= document.getElementById("bg");
                   i.src = URL.createObjectURL(myBlob);
               }
           };
           xhr.onerror = function (e) {
               alert(e+"  error");
           };
           xhr.send();

在 onreadystatechange 内部,IE10 上的警报返回 undefined,而 onload 内部的警报在 Chrome 上返回 blob-object,那么如何像在 Chrome 上一样在 IE10 上显示图像?

4

1 回答 1

0

我在JsFiddle中尝试了您的代码,但更改了 url 并且它有效。

xhr.open("GET", "http://fiddle.jshell.net/js/lib/dummy.js", true)

可能您没有在标准模式下使用 IE。

按 F12 看看这些东西:

Browser Mode: IE10

Document Mode: Standards

于 2013-06-17T16:09:37.810 回答