IE9错误:图像'load'事件在dev中触发,但不在prod中触发

时间:2013-10-01 17:26:25

标签: javascript ajax internet-explorer-9 onload-event

我们有一个图片上传对话框,允许用户通过AJAX更改他们的个人资料照片。它的工作原理如下:

1)用户点击“更新照片”操作。

2)对话框打开

3)加载当前配置文件图像,并且'load'事件触发cropper初始化

4)用户点击“上传新照片”

5)通过分段上传,响应使用新照片的cdn链接发回成功消息。

6)新的照片网址取代了对话框中的'src'图像(之前保存用户原始个人资料图像的图像)。

6)新照片加载,触发“加载”事件并初始化剪切器。

在我们的开发环境中,这样可以正常工作,但在生产中,第二个“加载”(在新的照片事件之后发生的事情永远不会发生,因此停止了对裁剪器的初始化。我正在使用Charles来将我们的javascript请求重新路由到我的本地机器,所以dev和prod使用完全相同的代码来执行。唯一的区别是环境(据我所知)。

要明确:在两种情况下上传都是成功的,并返回一个有效的URL,该URL确认链接到刚刚上传的图像。据我所知,唯一的问题是prod中的新图像从未触发“加载”事件。我也无法在任何浏览器中产生此错误,但IE9。

想法?

示例:

// How the image load event is bound
$image.on('load', handleImageLoad);

// How the image is being set (src is provided on upload-success):
$image.attr('src', src);

// handleImageLoad is called after image upload in dev, but not in prod

测试:

为了测试imageEl.complete理论,我设置了这段代码:

  interval = setInterval(function () {
    if ($image[0].complete) {
      handleImageLoad();
      clearInterval(interval);
    }
  }, 0);

handleImageLoad仍未到达。

0 个答案:

没有答案